From ac5e696cc136a67ea467c2bb82048489084dd1a0 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Thu, 11 Mar 2021 10:30:20 -0500 Subject: [PATCH] annotated models and removed gender-ssrnet --- config.js | 2 +- dist/demo-browser-index.js.map | 2 +- dist/human.esm-nobundle.js.map | 2 +- dist/human.esm.js.map | 2 +- dist/human.js.map | 2 +- dist/human.node-gpu.js.map | 2 +- dist/human.node.js.map | 2 +- models/age.json | 2 +- models/blazeface-back.json | 2 +- models/blazeface-front.json | 2 +- models/blazepose.json | 2 +- models/emotion.json | 2 +- models/facemesh.json | 2 +- models/gender.json | 2 +- models/handdetect.json | 2 +- models/handskeleton.json | 2 +- models/iris.json | 2 +- models/mobilefacenet.json | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/config.js b/config.js index f3b6c57a..0846fcd4 100644 --- a/config.js +++ b/config.js @@ -107,7 +107,7 @@ export default { gender: { enabled: true, minConfidence: 0.1, // threshold for discarding a prediction - modelPath: '../models/gender.json', // can be 'gender' or 'gender-ssrnet-imdb' + modelPath: '../models/gender.json', skipFrames: 32, // how many frames to go without re-running the detector // only used for video inputs }, diff --git a/dist/demo-browser-index.js.map b/dist/demo-browser-index.js.map index 97c00fcc..26f4b983 100644 --- a/dist/demo-browser-index.js.map +++ b/dist/demo-browser-index.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/blazeface/facemesh.ts", "../src/posenet/keypoints.ts", "../src/log.ts", "../src/sysinfo.ts", "../node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/transform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transform_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../src/tfjs/tf-browser.ts", "../src/tfjs/backend.ts", "../src/blazeface/blazeface.ts", "../src/blazeface/box.ts", "../src/blazeface/util.ts", "../src/blazeface/coords.ts", "../src/blazeface/facepipeline.ts", "../src/human.ts", "../src/age/age.ts", "../src/profile.ts", "../src/gender/gender.ts", "../src/emotion/emotion.ts", "../src/embedding/embedding.ts", "../src/posenet/posenet.ts", "../src/posenet/modelBase.ts", "../src/posenet/heapSort.ts", "../src/posenet/buildParts.ts", "../src/posenet/decodePose.ts", "../src/posenet/vectors.ts", "../src/posenet/decoders.ts", "../src/posenet/decodeMultiple.ts", "../src/posenet/util.ts", "../src/handpose/handpose.ts", "../src/handpose/box.ts", "../src/handpose/handdetector.ts", "../src/handpose/util.ts", "../src/handpose/handpipeline.ts", "../src/handpose/anchors.ts", "../src/blazepose/blazepose.ts", "../src/blazepose/annotations.ts", "../src/gesture/gesture.ts", "../src/imagefx.js", "../src/image.ts", "../config.js", "../src/sample.ts", "../src/draw.ts", "../demo/menu.js", "../demo/gl-bench.js", "../demo/browser.js"], - "sourcesContent": ["import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\n// Detect the global object, even if operating in strict mode.\n// http://stackoverflow.com/a/14387057/265298\nvar global = (0, eval)('this'),\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport * as packageBundle from '@tensorflow/tfjs/package.json';\nimport * as packageCore from '@tensorflow/tfjs-core/package.json';\nimport * as packageData from '@tensorflow/tfjs-data/package.json';\nimport * as packageLayers from '@tensorflow/tfjs-layers/package.json';\nimport * as packageConverter from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs: packageBundle.version,\n 'tfjs-core': packageCore.version,\n 'tfjs-data': packageData.version,\n 'tfjs-layers': packageLayers.version,\n 'tfjs-converter': packageConverter.version,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json', // can be 'gender' or 'gender-ssrnet-imdb'\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n", "let instance = 0;\nlet CSScreated = false;\n\nlet theme = {\n background: 'darkslategray',\n hover: 'lightgray',\n itemBackground: 'black',\n itemColor: 'white',\n buttonBackground: 'lightblue',\n buttonHover: 'lightgreen',\n checkboxOn: 'lightgreen',\n checkboxOff: 'lightcoral',\n rangeBackground: 'lightblue',\n rangeLabel: 'white',\n chartColor: 'lightblue',\n};\n\nfunction createCSS() {\n if (CSScreated) return;\n const css = `\n :root { --rounded: 0.1rem; }\n .menu { position: absolute; top: 0rem; right: 0; width: max-content; padding: 0 0.2rem 0 0.2rem; line-height: 1.8rem; z-index: 10;\n box-shadow: 0 0 8px dimgrey; background: ${theme.background}; border-radius: var(--rounded); border-color: black; border-style: solid; border-width: thin; }\n\n .menu:hover { box-shadow: 0 0 8px ${theme.hover}; }\n .menu-container { display: block; max-height: 100vh; }\n .menu-container-fadeout { max-height: 0; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-container-fadein { max-height: 100vh; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-item { display: flex; white-space: nowrap; padding: 0.2rem; cursor: default; width: 100%; }\n .menu-title { cursor: pointer; }\n .menu-hr { margin: 0.2rem; border: 1px solid rgba(0, 0, 0, 0.5) }\n .menu-label { padding: 0; font-weight: 800; }\n\n .menu-list { margin-right: 0.8rem; }\n select:focus { outline: none; }\n .menu-list-item { background: ${theme.itemBackground}; color: ${theme.itemColor}; border: none; padding: 0.2rem; font-family: inherit;\n font-variant: inherit; border-radius: var(--rounded); font-weight: 800; }\n\n .menu-chart-title { padding: 0; font-size: 0.8rem; font-weight: 800; align-items: center}\n .menu-chart-canvas { background: transparent; margin: 0.2rem 0 0.2rem 0.6rem; }\n \n .menu-button { border: 0; background: ${theme.buttonBackground}; width: -webkit-fill-available; padding: 8px; margin: 8px; cursor: pointer; box-shadow: 4px 4px 4px 0 dimgrey;\n border-radius: var(--rounded); justify-content: center; font-family: inherit; font-variant: inherit; font-size: 1rem; font-weight: 800; }\n .menu-button:hover { background: ${theme.buttonHover}; box-shadow: 4px 4px 4px 0 black; }\n .menu-button:focus { outline: none; }\n\n .menu-checkbox { width: 2.8rem; height: 1rem; background: ${theme.itemBackground}; margin: 0.5rem 0.5rem 0 0; position: relative; border-radius: var(--rounded); }\n .menu-checkbox:after { content: 'OFF'; color: ${theme.checkboxOff}; position: absolute; right: 0.2rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox:before { content: 'ON'; color: ${theme.checkboxOn}; position: absolute; left: 0.3rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox-label { width: 1.3rem; height: 0.8rem; cursor: pointer; position: absolute; top: 0.1rem; left: 0.1rem; z-index: 1; background: ${theme.checkboxOff};\n border-radius: var(--rounded); transition: left 0.6s ease; }\n\n input[type=checkbox] { visibility: hidden; }\n input[type=checkbox]:checked + label { left: 1.4rem; background: ${theme.checkboxOn}; }\n\n .menu-range { margin: 0.2rem 0.5rem 0 0; width: 3.5rem; background: transparent; color: ${theme.rangeBackground}; }\n .menu-range:before { color: ${theme.rangeLabel}; margin: 0 0.4rem 0 0; font-weight: 800; font-size: 0.6rem; position: relative; top: 0.3rem; content: attr(value); }\n\n input[type=range] { -webkit-appearance: none; }\n input[type=range]::-webkit-slider-runnable-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-moz-range-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-webkit-slider-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n input[type=range]::-moz-range-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n\n .svg-background { fill:darkslategrey; cursor:pointer; opacity: 0.6; }\n .svg-foreground { fill:white; cursor:pointer; opacity: 0.8; }\n `;\n const el = document.createElement('style');\n el.innerHTML = css;\n document.getElementsByTagName('head')[0].appendChild(el);\n CSScreated = true;\n}\n\nclass Menu {\n constructor(parent, title, position, userTheme) {\n if (userTheme) theme = { ...theme, ...userTheme };\n createCSS();\n this.createMenu(parent, title, position);\n this.id = 0;\n this.instance = instance;\n instance++;\n this._maxFPS = 0;\n this.hidden = 0;\n }\n\n createMenu(parent, title = '', position = { top: null, left: null, bottom: null, right: null }) {\n this.menu = document.createElement('div');\n this.menu.id = `menu-${instance}`;\n this.menu.className = 'menu';\n if (position) {\n if (position.top) this.menu.style.top = position.top;\n if (position.bottom) this.menu.style.bottom = position.bottom;\n if (position.left) this.menu.style.left = position.left;\n if (position.right) this.menu.style.right = position.right;\n }\n\n this.container = document.createElement('div');\n this.container.id = `menu-container-${instance}`;\n this.container.className = 'menu-container menu-container-fadein';\n\n // set menu title with pulldown arrow\n const elTitle = document.createElement('div');\n elTitle.className = 'menu-title';\n elTitle.id = `menu-title-${instance}`;\n const svg = `\n \n \n `;\n if (title) elTitle.innerHTML = `${title}${svg}`;\n this.menu.appendChild(elTitle);\n elTitle.addEventListener('click', () => {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n this.menu.style.borderStyle = this.container.classList.contains('menu-container-fadeout') ? 'none' : 'solid';\n });\n\n this.menu.appendChild(this.container);\n if (typeof parent === 'object') parent.appendChild(this.menu);\n else document.getElementById(parent).appendChild(this.menu);\n }\n\n get newID() {\n this.id++;\n return `menu-${this.instance}-${this.id}`;\n }\n\n get ID() {\n return `menu-${this.instance}-${this.id}`;\n }\n\n get width() {\n return this.menu.offsetWidth;\n }\n\n get height() {\n return this.menu.offsetHeight;\n }\n\n hide() {\n if (this.container.classList.contains('menu-container-fadein')) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n }\n }\n\n visible() {\n return (this.container.classList.contains('menu-container-fadein'));\n }\n\n toggle(evt) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n if (this.container.classList.contains('menu-container-fadein') && evt) {\n const x = evt.x || (evt.touches && evt.touches[0] ? evt.touches[0].pageX : null);\n // const y = evt.y || (evt.touches && evt.touches[0] ? evt.touches[0].pageY : null);\n if (x) this.menu.style.left = `${x - (this.menu.offsetWidth / 2)}px`;\n // if (y) this.menu.style.top = '5.5rem'; // `${evt.y + 55}px`;\n if (this.menu.offsetLeft < 0) this.menu.style.left = 0;\n if ((this.menu.offsetLeft + this.menu.offsetWidth) > window.innerWidth) {\n this.menu.style.left = null;\n this.menu.style.right = 0;\n }\n this.menu.style.borderStyle = 'solid';\n } else {\n this.menu.style.borderStyle = 'none';\n }\n }\n\n addTitle(title) {\n const el = document.createElement('div');\n el.className = 'menu-title';\n el.id = this.newID;\n el.innerHTML = title;\n this.menu.appendChild(el);\n el.addEventListener('click', () => {\n this.hidden = !this.hidden;\n const all = document.getElementsByClassName('menu');\n for (const item of all) {\n item.style.display = this.hidden ? 'none' : 'block';\n }\n });\n return el;\n }\n\n addLabel(title) {\n const el = document.createElement('div');\n el.className = 'menu-item menu-label';\n el.id = this.newID;\n el.innerHTML = title;\n this.container.appendChild(el);\n return el;\n }\n\n addBool(title, object, variable, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `
${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = evt.target.checked;\n if (callback) callback(evt.target.checked);\n });\n return el;\n }\n\n async addList(title, items, selected, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n let options = '';\n for (const item of items) {\n const def = item === selected ? 'selected' : '';\n options += ``;\n }\n el.innerHTML = `
${title}`;\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n if (callback) callback(items[evt.target.selectedIndex]);\n });\n return el;\n }\n\n addRange(title, object, variable, min, max, step, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = parseInt(evt.target.value) === parseFloat(evt.target.value) ? parseInt(evt.target.value) : parseFloat(evt.target.value);\n evt.target.setAttribute('value', evt.target.value);\n if (callback) callback(evt.target.value);\n });\n el.input = el.children[0];\n return el;\n }\n\n addHTML(html) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = this.newID;\n if (html) el.innerHTML = html;\n this.container.appendChild(el);\n return el;\n }\n\n addButton(titleOn, titleOff, callback) {\n const el = document.createElement('button');\n el.className = 'menu-item menu-button';\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n el.type = 'button';\n el.id = this.newID;\n el.innerText = titleOn;\n this.container.appendChild(el);\n el.addEventListener('click', () => {\n if (el.innerText === titleOn) el.innerText = titleOff;\n else el.innerText = titleOn;\n if (callback) callback(el.innerText !== titleOn);\n });\n return el;\n }\n\n addValue(title, val, suffix = '') {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = `menu-val-${title}`;\n el.innerText = `${title}: ${val}${suffix}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n updateValue(title, val, suffix = '') {\n const el = document.getElementById(`menu-val-${title}`);\n if (el) el.innerText = `${title}: ${val}${suffix}`;\n else this.addValue(title, val);\n }\n\n addChart(title, id, width = 150, height = 40, color) {\n if (color) theme.chartColor = color;\n const el = document.createElement('div');\n el.className = 'menu-item menu-chart-title';\n el.id = this.newID;\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n async updateChart(id, values) {\n if (!values || (values.length === 0)) return;\n const canvas = document.getElementById(`menu-canvas-${id}`);\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = theme.background;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const width = canvas.width / values.length;\n const max = 1 + Math.max(...values);\n const height = canvas.height / max;\n for (let i = 0; i < values.length; i++) {\n const gradient = ctx.createLinearGradient(0, (max - values[i]) * height, 0, 0);\n gradient.addColorStop(0.1, theme.chartColor);\n gradient.addColorStop(0.4, theme.background);\n ctx.fillStyle = gradient;\n ctx.fillRect(i * width, 0, width - 4, canvas.height);\n ctx.fillStyle = theme.background;\n ctx.font = `${width / 1.5}px \"Segoe UI\"`;\n ctx.fillText(Math.round(values[i]), i * width + 1, canvas.height - 1, width - 1);\n }\n }\n}\n\nexport default Menu;\n", "/* eslint-disable max-len */\n\n// based on: https://github.com/munrocket/gl-bench\n\nconst UICSS = `\n #gl-bench { position: absolute; right: 1rem; bottom: 1rem; z-index:1000; -webkit-user-select: none; -moz-user-select: none; user-select: none; }\n #gl-bench div { position: relative; display: block; margin: 4px; padding: 0 2px 0 2px; background: darkslategray; border-radius: 0.1rem; cursor: pointer; opacity: 0.9; }\n #gl-bench svg { height: 60px; margin: 0 0px 0px 4px; }\n #gl-bench text { font-size: 16px; font-family: 'Lato', 'Segoe UI'; dominant-baseline: middle; text-anchor: middle; }\n #gl-bench .gl-mem { font-size: 12px; fill: white; }\n #gl-bench .gl-fps { font-size: 13px; fill: white; }\n #gl-bench line { stroke-width: 5; stroke: white; stroke-linecap: round; }\n #gl-bench polyline { fill: none; stroke: white; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3.5; }\n #gl-bench rect { fill: black; }\n #gl-bench .opacity { stroke: black; }\n `;\n\nconst UISVG = `\n
\n \n 00 FPS\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n `;\n\nclass GLBench {\n /** GLBench constructor\n * @param { WebGLRenderingContext | WebGL2RenderingContext } gl context\n * @param { Object | undefined } settings additional settings\n */\n constructor(gl, settings = {}) {\n this.css = UICSS;\n this.svg = UISVG;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.paramLogger = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.chartLogger = () => {};\n this.chartLen = 20;\n this.chartHz = 20;\n\n this.names = [];\n this.cpuAccums = [];\n this.gpuAccums = [];\n this.activeAccums = [];\n this.chart = new Array(this.chartLen);\n this.now = () => ((performance && performance.now) ? performance.now() : Date.now());\n this.updateUI = () => {\n [].forEach.call(this.nodes['gl-gpu-svg'], (node) => node.style.display = this.trackGPU ? 'inline' : 'none');\n };\n\n Object.assign(this, settings);\n this.detected = 0;\n this.finished = [];\n this.isFramebuffer = 0;\n this.frameId = 0;\n\n // 120hz device detection\n let rafId; let n = 0; let\n t0;\n const loop = (t) => {\n if (++n < 20) {\n rafId = requestAnimationFrame(loop);\n } else {\n this.detected = Math.ceil(1e3 * n / (t - t0) / 70);\n cancelAnimationFrame(rafId);\n }\n if (!t0) t0 = t;\n };\n requestAnimationFrame(loop);\n\n // attach gpu profilers\n if (gl) {\n const glFinish = async (t, activeAccums) => Promise.resolve(setTimeout(() => {\n gl.getError();\n const dt = this.now() - t;\n activeAccums.forEach((active, i) => {\n if (active) this.gpuAccums[i] += dt;\n });\n }, 0));\n\n const addProfiler = (fn, self, target) => {\n const t = self.now();\n // eslint-disable-next-line prefer-rest-params\n fn.apply(target, arguments);\n if (self.trackGPU) self.finished.push(glFinish(t, self.activeAccums.slice(0)));\n };\n\n /* ['drawArrays', 'drawElements', 'drawArraysInstanced', 'drawBuffers', 'drawElementsInstanced', 'drawRangeElements'].forEach((fn) => {\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n }\n });\n */\n const fn = 'drawElements';\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n } else {\n // eslint-disable-next-line no-console\n console.log('bench: cannot attach to webgl function');\n }\n\n /*\n gl.getExtension = ((fn, self) => {\n // eslint-disable-next-line prefer-rest-params\n const ext = fn.apply(gl, arguments);\n if (ext) {\n ['drawElementsInstancedANGLE', 'drawBuffersWEBGL'].forEach((fn2) => {\n if (ext[fn2]) {\n ext[fn2] = addProfiler(ext[fn2], self, ext);\n }\n });\n }\n return ext;\n })(gl.getExtension, this);\n */\n }\n\n // init ui and ui loggers\n if (!this.withoutUI) {\n if (!this.dom) this.dom = document.body;\n const elm = document.createElement('div');\n elm.id = 'gl-bench';\n this.dom.appendChild(elm);\n this.dom.insertAdjacentHTML('afterbegin', '');\n this.dom = elm;\n this.dom.addEventListener('click', () => {\n this.trackGPU = !this.trackGPU;\n this.updateUI();\n });\n\n this.paramLogger = ((logger, dom, names) => {\n const classes = ['gl-cpu', 'gl-gpu', 'gl-mem', 'gl-fps', 'gl-gpu-svg', 'gl-chart'];\n const nodes = { ...classes };\n classes.forEach((c) => nodes[c] = dom.getElementsByClassName(c));\n this.nodes = nodes;\n return (i, cpu, gpu, mem, fps, totalTime, frameId) => {\n nodes['gl-cpu'][i].style.strokeDasharray = (cpu * 0.27).toFixed(0) + ' 100';\n nodes['gl-gpu'][i].style.strokeDasharray = (gpu * 0.27).toFixed(0) + ' 100';\n // eslint-disable-next-line no-nested-ternary\n nodes['gl-mem'][i].innerHTML = names[i] ? names[i] : (mem ? 'mem: ' + mem.toFixed(0) + 'mb' : '');\n nodes['gl-fps'][i].innerHTML = 'FPS: ' + fps.toFixed(1);\n logger(names[i], cpu, gpu, mem, fps, totalTime, frameId);\n };\n })(this.paramLogger, this.dom, this.names);\n\n this.chartLogger = ((logger, dom) => {\n const nodes = { 'gl-chart': dom.getElementsByClassName('gl-chart') };\n return (i, chart, circularId) => {\n let points = '';\n const len = chart.length;\n for (let j = 0; j < len; j++) {\n const id = (circularId + j + 1) % len;\n if (chart[id] !== undefined) points = points + ' ' + (60 * j / (len - 1)).toFixed(1) + ',' + (45 - chart[id] * 0.5 / this.detected).toFixed(1);\n }\n nodes['gl-chart'][i].setAttribute('points', points);\n logger(this.names[i], chart, circularId);\n };\n })(this.chartLogger, this.dom);\n }\n }\n\n /**\n * Explicit UI add\n * @param { string | undefined } name\n */\n addUI(name) {\n if (this.names.indexOf(name) === -1) {\n this.names.push(name);\n if (this.dom) {\n this.dom.insertAdjacentHTML('beforeend', this.svg);\n this.updateUI();\n }\n this.cpuAccums.push(0);\n this.gpuAccums.push(0);\n this.activeAccums.push(false);\n }\n }\n\n /**\n * Increase frameID\n * @param { number | undefined } now\n */\n nextFrame(now) {\n this.frameId++;\n const t = now || this.now();\n\n // params\n if (this.frameId <= 1) {\n this.paramFrame = this.frameId;\n this.paramTime = t;\n } else {\n const duration = t - this.paramTime;\n if (duration >= 1e3) {\n const frameCount = this.frameId - this.paramFrame;\n const fps = frameCount / duration * 1e3;\n for (let i = 0; i < this.names.length; i++) {\n const cpu = this.cpuAccums[i] / duration * 100;\n const gpu = this.gpuAccums[i] / duration * 100;\n const mem = (performance && performance.memory) ? performance.memory.usedJSHeapSize / (1 << 20) : 0;\n this.paramLogger(i, cpu, gpu, mem, fps, duration, frameCount);\n this.cpuAccums[i] = 0;\n Promise.all(this.finished).then(() => {\n this.gpuAccums[i] = 0;\n this.finished = [];\n });\n }\n this.paramFrame = this.frameId;\n this.paramTime = t;\n }\n }\n\n // chart\n if (!this.detected || !this.chartFrame) {\n this.chartFrame = this.frameId;\n this.chartTime = t;\n this.circularId = 0;\n } else {\n const timespan = t - this.chartTime;\n let hz = this.chartHz * timespan / 1e3;\n while (--hz > 0 && this.detected) {\n const frameCount = this.frameId - this.chartFrame;\n const fps = frameCount / timespan * 1e3;\n this.chart[this.circularId % this.chartLen] = fps;\n for (let i = 0; i < this.names.length; i++) this.chartLogger(i, this.chart, this.circularId);\n this.circularId++;\n this.chartFrame = this.frameId;\n this.chartTime = t;\n }\n }\n }\n\n /**\n * Begin named measurement\n * @param { string | undefined } name\n */\n begin(name) {\n this.updateAccums(name);\n }\n\n /**\n * End named measure\n * @param { string | undefined } name\n */\n end(name) {\n this.updateAccums(name);\n }\n\n updateAccums(name) {\n let nameId = this.names.indexOf(name);\n if (nameId === -1) {\n nameId = this.names.length;\n this.addUI(name);\n }\n\n const t = this.now();\n const dt = t - this.t0;\n for (let i = 0; i < nameId + 1; i++) {\n if (this.activeAccums[i]) this.cpuAccums[i] += dt;\n }\n this.activeAccums[nameId] = !this.activeAccums[nameId];\n this.t0 = t;\n }\n}\n\nexport default GLBench;\n", "// import Human from '../dist/human.esm.js'; // equivalent of @vladmandic/human\nimport Human from '../src/human';\nimport Menu from './menu.js';\nimport GLBench from './gl-bench.js';\n\n// const userConfig = { backend: 'webgl' }; // add any user configuration overrides\n\nconst userConfig = {\n backend: 'webgl',\n async: false,\n warmup: 'face',\n videoOptimized: false,\n face: { enabled: true, mesh: { enabled: false }, iris: { enabled: false }, age: { enabled: false }, gender: { enabled: false }, emotion: { enabled: false }, embedding: { enabled: true } },\n hand: { enabled: false },\n gesture: { enabled: false },\n body: { enabled: false, modelPath: '../models/blazepose.json' },\n};\n\nconst human = new Human(userConfig);\n\n// ui options\nconst ui = {\n baseBackground: 'rgba(50, 50, 50, 1)', // 'grey'\n crop: true, // video mode crop to size or leave full frame\n columns: 2, // when processing sample images create this many columns\n facing: true, // camera facing front or back\n useWorker: false, // use web workers for processing\n worker: 'worker.js',\n samples: ['../assets/sample6.jpg', '../assets/sample1.jpg', '../assets/sample4.jpg', '../assets/sample5.jpg', '../assets/sample3.jpg', '../assets/sample2.jpg'],\n compare: '../assets/sample-me.jpg',\n console: true, // log messages to browser console\n maxFPSframes: 10, // keep fps history for how many frames\n modelsPreload: true, // preload human models on startup\n busy: false, // internal camera busy flag\n menuWidth: 0, // internal\n menuHeight: 0, // internal\n camera: {}, // internal, holds details of webcam details\n detectFPS: [], // internal, holds fps values for detection performance\n drawFPS: [], // internal, holds fps values for draw performance\n buffered: false, // experimental, should output be buffered between frames\n drawWarmup: true, // debug only, should warmup image processing be displayed on startup\n drawThread: null, // internl, perform draw operations in a separate thread\n detectThread: null, // internl, perform detect operations in a separate thread\n framesDraw: 0, // internal, statistics on frames drawn\n framesDetect: 0, // internal, statistics on frames detected\n bench: true, // show gl fps benchmark window\n lastFrame: 0, // time of last frame processing\n};\n\n// global variables\nconst menu = {};\nlet worker;\nlet bench;\nlet lastDetectedResult = {};\n\n// helper function: translates json to human readable string\nfunction str(...msg) {\n if (!Array.isArray(msg)) return msg;\n let line = '';\n for (const entry of msg) {\n if (typeof entry === 'object') line += JSON.stringify(entry).replace(/{|}|\"|\\[|\\]/g, '').replace(/,/g, ', ');\n else line += entry;\n }\n return line;\n}\n\n// helper function: wrapper around console output\nfunction log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (ui.console) console.log(ts, ...msg);\n}\n\nfunction status(msg) {\n // eslint-disable-next-line no-console\n const div = document.getElementById('status');\n if (div) div.innerText = msg;\n}\n\nlet original;\nasync function calcSimmilariry(result) {\n document.getElementById('compare-container').style.display = human.config.face.embedding.enabled ? 'block' : 'none';\n if (!human.config.face.embedding.enabled) return;\n if ((result?.face?.length > 0) && (result?.face[0].embedding?.length !== 192)) return;\n if (!original) {\n original = result;\n document.getElementById('compare-canvas').getContext('2d').drawImage(original.canvas, 0, 0, 200, 200);\n }\n const simmilarity = human.simmilarity(original?.face[0]?.embedding, result?.face[0]?.embedding);\n document.getElementById('simmilarity').innerText = `simmilarity: ${Math.trunc(1000 * simmilarity) / 10}%`;\n}\n\n// draws processed results and starts processing of a next frame\nlet lastDraw = performance.now();\nasync function drawResults(input) {\n const result = lastDetectedResult;\n const canvas = document.getElementById('canvas');\n\n // update draw fps data\n ui.drawFPS.push(1000 / (performance.now() - lastDraw));\n if (ui.drawFPS.length > ui.maxFPSframes) ui.drawFPS.shift();\n lastDraw = performance.now();\n\n // draw fps chart\n await menu.process.updateChart('FPS', ui.detectFPS);\n\n // get updated canvas\n if (ui.buffered || !result.canvas) {\n const image = await human.image(input);\n result.canvas = image.canvas;\n human.tf.dispose(image.tensor);\n }\n\n // draw image from video\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = ui.baseBackground;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n if (result.canvas) {\n if (result.canvas.width !== canvas.width) canvas.width = result.canvas.width;\n if (result.canvas.height !== canvas.height) canvas.height = result.canvas.height;\n ctx.drawImage(result.canvas, 0, 0, result.canvas.width, result.canvas.height, 0, 0, result.canvas.width, result.canvas.height);\n } else {\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n }\n\n // draw all results\n human.draw.face(canvas, result.face);\n human.draw.body(canvas, result.body);\n human.draw.hand(canvas, result.hand);\n human.draw.gesture(canvas, result.gesture);\n await calcSimmilariry(result);\n\n // update log\n const engine = human.tf.engine();\n const gpu = engine.backendInstance ? `gpu: ${(engine.backendInstance.numBytesInGPU ? engine.backendInstance.numBytesInGPU : 0).toLocaleString()} bytes` : '';\n const memory = `system: ${engine.state.numBytes.toLocaleString()} bytes ${gpu} | tensors: ${engine.state.numTensors.toLocaleString()}`;\n const processing = result.canvas ? `processing: ${result.canvas.width} x ${result.canvas.height}` : '';\n const avgDetect = Math.trunc(10 * ui.detectFPS.reduce((a, b) => a + b, 0) / ui.detectFPS.length) / 10;\n const avgDraw = Math.trunc(10 * ui.drawFPS.reduce((a, b) => a + b, 0) / ui.drawFPS.length) / 10;\n const warning = (ui.detectFPS.length > 5) && (avgDetect < 5) ? 'warning: your performance is low: try switching to higher performance backend, lowering resolution or disabling some models' : '';\n document.getElementById('log').innerHTML = `\n video: ${ui.camera.name} | facing: ${ui.camera.facing} | screen: ${window.innerWidth} x ${window.innerHeight} camera: ${ui.camera.width} x ${ui.camera.height} ${processing}
\n backend: ${human.tf.getBackend()} | ${memory}
\n performance: ${str(result.performance)}ms FPS process:${avgDetect} refresh:${avgDraw}
\n ${warning}
\n `;\n\n ui.framesDraw++;\n ui.lastFrame = performance.now();\n // if buffered, immediate loop but limit frame rate although it's going to run slower as JS is singlethreaded\n if (ui.buffered) {\n ui.drawThread = requestAnimationFrame(() => drawResults(input, canvas));\n } else if (!ui.buffered && ui.drawThread) {\n log('stopping buffered refresh');\n cancelAnimationFrame(ui.drawThread);\n ui.drawThread = null;\n }\n}\n\n// setup webcam\nasync function setupCamera() {\n if (ui.busy) return null;\n ui.busy = true;\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n const output = document.getElementById('log');\n const live = video.srcObject ? ((video.srcObject.getVideoTracks()[0].readyState === 'live') && (video.readyState > 2) && (!video.paused)) : false;\n let msg = '';\n status('setting up camera');\n // setup webcam. note that navigator.mediaDevices requires that page is accessed via https\n if (!navigator.mediaDevices) {\n msg = 'camera access not supported';\n output.innerText += `\\n${msg}`;\n log(msg);\n status(msg);\n ui.busy = false;\n return msg;\n }\n let stream;\n const constraints = {\n audio: false,\n video: { facingMode: ui.facing ? 'user' : 'environment', resizeMode: ui.crop ? 'crop-and-scale' : 'none' },\n };\n if (window.innerWidth > window.innerHeight) constraints.video.width = { ideal: window.innerWidth };\n else constraints.video.height = { ideal: (window.innerHeight - document.getElementById('menubar').offsetHeight) };\n try {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n } catch (err) {\n if (err.name === 'PermissionDeniedError' || err.name === 'NotAllowedError') msg = 'camera permission denied';\n else if (err.name === 'SourceUnavailableError') msg = 'camera not available';\n else msg = `camera error: ${err.message || err}`;\n output.innerText += `\\n${msg}`;\n status(msg);\n log('camera error:', err);\n ui.busy = false;\n return msg;\n }\n if (stream) video.srcObject = stream;\n else {\n ui.busy = false;\n return 'camera stream empty';\n }\n const track = stream.getVideoTracks()[0];\n const settings = track.getSettings();\n // log('camera constraints:', constraints, 'window:', { width: window.innerWidth, height: window.innerHeight }, 'settings:', settings, 'track:', track);\n ui.camera = { name: track.label?.toLowerCase(), width: settings.width, height: settings.height, facing: settings.facingMode === 'user' ? 'front' : 'back' };\n return new Promise((resolve) => {\n video.onloadeddata = async () => {\n video.width = video.videoWidth;\n video.height = video.videoHeight;\n canvas.width = video.width;\n canvas.height = video.height;\n canvas.style.width = canvas.width > canvas.height ? '100vw' : '';\n canvas.style.height = canvas.width > canvas.height ? '' : '100vh';\n ui.menuWidth.input.setAttribute('value', video.width);\n ui.menuHeight.input.setAttribute('value', video.height);\n // silly font resizing for paint-on-canvas since viewport can be zoomed\n if (live) video.play();\n // eslint-disable-next-line no-use-before-define\n if (live && !ui.detectThread) runHumanDetect(video, canvas);\n ui.busy = false;\n // do once more because onresize events can be delayed or skipped\n // if (video.width > window.innerWidth) await setupCamera();\n status('');\n resolve();\n };\n });\n}\n\nfunction initPerfMonitor() {\n if (!bench) {\n const gl = null;\n // cosnt gl = human.tf.engine().backend.gpgpu.gl;\n // if (!gl) log('bench cannot get tensorflow webgl context');\n bench = new GLBench(gl, {\n trackGPU: false, // this is really slow\n chartHz: 20,\n chartLen: 20,\n });\n bench.begin();\n }\n}\n\n// wrapper for worker.postmessage that creates worker if one does not exist\nfunction webWorker(input, image, canvas, timestamp) {\n if (!worker) {\n // create new webworker and add event handler only once\n log('creating worker thread');\n worker = new Worker(ui.worker, { type: 'module' });\n // after receiving message from webworker, parse&draw results and send new frame for processing\n worker.addEventListener('message', (msg) => {\n if (msg.data.result.performance && msg.data.result.performance.total) ui.detectFPS.push(1000 / msg.data.result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n lastDetectedResult = msg.data.result;\n ui.framesDetect++;\n if (!ui.drawThread) drawResults(input);\n // eslint-disable-next-line no-use-before-define\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n });\n }\n // pass image data as arraybuffer to worker by reference to avoid copy\n worker.postMessage({ image: image.data.buffer, width: canvas.width, height: canvas.height, userConfig }, [image.data.buffer]);\n}\n\n// main processing function when input is webcam, can use direct invocation or web worker\nfunction runHumanDetect(input, canvas, timestamp) {\n // if live video\n const live = input.srcObject && (input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState > 2) && (!input.paused);\n if (!live && input.srcObject) {\n // stop ui refresh\n if (ui.drawThread) cancelAnimationFrame(ui.drawThread);\n if (ui.detectThread) cancelAnimationFrame(ui.detectThread);\n ui.drawThread = null;\n ui.detectThread = null;\n // if we want to continue and camera not ready, retry in 0.5sec, else just give up\n if (input.paused) log('camera paused');\n else if ((input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState <= 2)) setTimeout(() => runHumanDetect(input, canvas), 500);\n else log(`camera not ready: track state: ${input.srcObject?.getVideoTracks()[0].readyState} stream state: ${input.readyState}`);\n clearTimeout(ui.drawThread);\n ui.drawThread = null;\n log('frame statistics: process:', ui.framesDetect, 'refresh:', ui.framesDraw);\n log('memory', human.tf.engine().memory());\n return;\n }\n status('');\n if (ui.useWorker) {\n // get image data from video as we cannot send html objects to webworker\n const offscreen = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(canvas.width, canvas.height) : document.createElement('canvas');\n offscreen.width = canvas.width;\n offscreen.height = canvas.height;\n const ctx = offscreen.getContext('2d');\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n const data = ctx.getImageData(0, 0, canvas.width, canvas.height);\n // perform detection in worker\n webWorker(input, data, canvas, userConfig, timestamp);\n } else {\n human.detect(input, userConfig).then((result) => {\n if (result.performance && result.performance.total) ui.detectFPS.push(1000 / result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n if (result.error) {\n log(result.error);\n document.getElementById('log').innerText += `\\nHuman error: ${result.error}`;\n } else {\n lastDetectedResult = result;\n if (!ui.drawThread) drawResults(input);\n ui.framesDetect++;\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n }\n });\n }\n}\n\n// main processing function when input is image, can use direct invocation or web worker\nasync function processImage(input) {\n return new Promise((resolve) => {\n const image = new Image();\n image.onload = async () => {\n log('Processing image:', encodeURI(image.src));\n const canvas = document.getElementById('canvas');\n image.width = image.naturalWidth;\n image.height = image.naturalHeight;\n canvas.width = human.config.filter.width && human.config.filter.width > 0 ? human.config.filter.width : image.naturalWidth;\n canvas.height = human.config.filter.height && human.config.filter.height > 0 ? human.config.filter.height : image.naturalHeight;\n const result = await human.detect(image, userConfig);\n lastDetectedResult = result;\n await drawResults(image);\n const thumb = document.createElement('canvas');\n thumb.className = 'thumbnail';\n thumb.width = window.innerWidth / (ui.columns + 0.1);\n thumb.height = thumb.width * canvas.height / canvas.width;\n if (result.face && result.face.length > 0) {\n thumb.title = result.face.map((a, i) => `#${i} face: ${Math.trunc(100 * a.faceConfidence)}% box: ${Math.trunc(100 * a.boxConfidence)}% age: ${Math.trunc(a.age)} gender: ${Math.trunc(100 * a.genderConfidence)}% ${a.gender}`).join(' | ');\n } else {\n thumb.title = 'no face detected';\n }\n const ctx = thumb.getContext('2d');\n ctx.drawImage(canvas, 0, 0, canvas.width, canvas.height, 0, 0, thumb.width, thumb.height);\n document.getElementById('samples-container').appendChild(thumb);\n image.src = '';\n resolve(true);\n };\n image.src = input;\n });\n}\n\n// just initialize everything and call main function\nasync function detectVideo() {\n document.getElementById('samples-container').style.display = 'none';\n document.getElementById('canvas').style.display = 'block';\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n if ((video.srcObject !== null) && !video.paused) {\n document.getElementById('play').style.display = 'block';\n document.getElementById('btnStart').className = 'button button-start';\n document.getElementById('btnStart').innerHTML = 'start
video';\n status('paused');\n video.pause();\n } else {\n const cameraError = await setupCamera();\n if (!cameraError) {\n document.getElementById('play').style.display = 'none';\n for (const m of Object.values(menu)) m.hide();\n status('');\n document.getElementById('btnStart').className = 'button button-stop';\n document.getElementById('btnStart').innerHTML = 'pause
video';\n await video.play();\n if (!ui.detectThread) runHumanDetect(video, canvas);\n } else {\n status(cameraError);\n }\n }\n}\n\n// just initialize everything and call main function\nasync function detectSampleImages() {\n userConfig.videoOptimized = false; // force disable video optimizations\n document.getElementById('play').style.display = 'none';\n document.getElementById('canvas').style.display = 'none';\n document.getElementById('samples-container').style.display = 'block';\n log('Running detection of sample images');\n status('processing images');\n document.getElementById('samples-container').innerHTML = '';\n for (const m of Object.values(menu)) m.hide();\n for (const image of ui.samples) await processImage(image);\n status('');\n}\n\nfunction setupMenu() {\n let x = [];\n if (window.innerWidth > 800) {\n // initial position of menu items, later it's calculated based on mouse coordinates\n x = [`${document.getElementById('btnDisplay').offsetLeft - 50}px`, `${document.getElementById('btnImage').offsetLeft - 50}px`, `${document.getElementById('btnProcess').offsetLeft - 50}px`, `${document.getElementById('btnModel').offsetLeft - 50}px`];\n } else {\n // absolute minimum spacing for menus\n x = ['0rem', '11rem', '21.1rem', '33rem'];\n }\n\n menu.display = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[0] });\n menu.display.addBool('perf monitor', ui, 'bench', (val) => ui.bench = val);\n menu.display.addBool('buffered output', ui, 'buffered', (val) => ui.buffered = val);\n menu.display.addBool('crop & scale', ui, 'crop', (val) => {\n ui.crop = val;\n setupCamera();\n });\n menu.display.addBool('camera facing', ui, 'facing', (val) => {\n ui.facing = val;\n setupCamera();\n });\n menu.display.addHTML('
');\n menu.display.addBool('use 3D depth', human.draw.options, 'useDepth');\n menu.display.addBool('draw with curves', human.draw.options, 'useCurves');\n menu.display.addBool('print labels', human.draw.options, 'drawLabels');\n menu.display.addBool('draw points', human.draw.options, 'drawPoints');\n menu.display.addBool('draw boxes', human.draw.options, 'drawBoxes');\n menu.display.addBool('draw polygons', human.draw.options, 'drawPolygons');\n menu.display.addBool('fill polygons', human.draw.options, 'fillPolygons');\n\n menu.image = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[1] });\n menu.image.addBool('enabled', human.config.filter, 'enabled', (val) => human.config.filter.enabled = val);\n ui.menuWidth = menu.image.addRange('image width', human.config.filter, 'width', 0, 3840, 10, (val) => human.config.filter.width = parseInt(val));\n ui.menuHeight = menu.image.addRange('image height', human.config.filter, 'height', 0, 2160, 10, (val) => human.config.filter.height = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addRange('brightness', human.config.filter, 'brightness', -1.0, 1.0, 0.05, (val) => human.config.filter.brightness = parseFloat(val));\n menu.image.addRange('contrast', human.config.filter, 'contrast', -1.0, 1.0, 0.05, (val) => human.config.filter.contrast = parseFloat(val));\n menu.image.addRange('sharpness', human.config.filter, 'sharpness', 0, 1.0, 0.05, (val) => human.config.filter.sharpness = parseFloat(val));\n menu.image.addRange('blur', human.config.filter, 'blur', 0, 20, 1, (val) => human.config.filter.blur = parseInt(val));\n menu.image.addRange('saturation', human.config.filter, 'saturation', -1.0, 1.0, 0.05, (val) => human.config.filter.saturation = parseFloat(val));\n menu.image.addRange('hue', human.config.filter, 'hue', 0, 360, 5, (val) => human.config.filter.hue = parseInt(val));\n menu.image.addRange('pixelate', human.config.filter, 'pixelate', 0, 32, 1, (val) => human.config.filter.pixelate = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addBool('negative', human.config.filter, 'negative', (val) => human.config.filter.negative = val);\n menu.image.addBool('sepia', human.config.filter, 'sepia', (val) => human.config.filter.sepia = val);\n menu.image.addBool('vintage', human.config.filter, 'vintage', (val) => human.config.filter.vintage = val);\n menu.image.addBool('kodachrome', human.config.filter, 'kodachrome', (val) => human.config.filter.kodachrome = val);\n menu.image.addBool('technicolor', human.config.filter, 'technicolor', (val) => human.config.filter.technicolor = val);\n menu.image.addBool('polaroid', human.config.filter, 'polaroid', (val) => human.config.filter.polaroid = val);\n\n menu.process = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[2] });\n menu.process.addList('backend', ['cpu', 'webgl', 'wasm', 'humangl'], human.config.backend, (val) => human.config.backend = val);\n menu.process.addBool('async operations', human.config, 'async', (val) => human.config.async = val);\n // menu.process.addBool('enable profiler', human.config, 'profile', (val) => human.config.profile = val);\n // menu.process.addBool('memory shield', human.config, 'deallocate', (val) => human.config.deallocate = val);\n menu.process.addBool('use web worker', ui, 'useWorker');\n menu.process.addHTML('
');\n menu.process.addLabel('model parameters');\n menu.process.addRange('max objects', human.config.face.detector, 'maxFaces', 1, 50, 1, (val) => {\n human.config.face.detector.maxFaces = parseInt(val);\n human.config.body.maxDetections = parseInt(val);\n human.config.hand.maxHands = parseInt(val);\n });\n menu.process.addRange('skip frames', human.config.face.detector, 'skipFrames', 0, 50, 1, (val) => {\n human.config.face.detector.skipFrames = parseInt(val);\n human.config.face.emotion.skipFrames = parseInt(val);\n human.config.face.age.skipFrames = parseInt(val);\n human.config.hand.skipFrames = parseInt(val);\n });\n menu.process.addRange('min confidence', human.config.face.detector, 'minConfidence', 0.0, 1.0, 0.05, (val) => {\n human.config.face.detector.minConfidence = parseFloat(val);\n human.config.face.gender.minConfidence = parseFloat(val);\n human.config.face.emotion.minConfidence = parseFloat(val);\n human.config.hand.minConfidence = parseFloat(val);\n });\n menu.process.addRange('score threshold', human.config.face.detector, 'scoreThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.scoreThreshold = parseFloat(val);\n human.config.hand.scoreThreshold = parseFloat(val);\n human.config.body.scoreThreshold = parseFloat(val);\n });\n menu.process.addRange('overlap', human.config.face.detector, 'iouThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.iouThreshold = parseFloat(val);\n human.config.hand.iouThreshold = parseFloat(val);\n });\n menu.process.addBool('detection rotation', human.config.face.detector, 'rotation', (val) => {\n human.config.face.detector.rotation = val;\n human.config.hand.rotation = val;\n });\n menu.process.addHTML('
');\n menu.process.addButton('process sample images', 'process images', () => detectSampleImages());\n menu.process.addHTML('
');\n menu.process.addChart('FPS', 'FPS');\n\n menu.models = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[3] });\n menu.models.addBool('face detect', human.config.face, 'enabled', (val) => human.config.face.enabled = val);\n menu.models.addBool('face mesh', human.config.face.mesh, 'enabled', (val) => human.config.face.mesh.enabled = val);\n menu.models.addBool('face iris', human.config.face.iris, 'enabled', (val) => human.config.face.iris.enabled = val);\n menu.models.addBool('face age', human.config.face.age, 'enabled', (val) => human.config.face.age.enabled = val);\n menu.models.addBool('face gender', human.config.face.gender, 'enabled', (val) => human.config.face.gender.enabled = val);\n menu.models.addBool('face emotion', human.config.face.emotion, 'enabled', (val) => human.config.face.emotion.enabled = val);\n menu.models.addHTML('
');\n menu.models.addBool('body pose', human.config.body, 'enabled', (val) => human.config.body.enabled = val);\n menu.models.addBool('hand pose', human.config.hand, 'enabled', (val) => human.config.hand.enabled = val);\n menu.models.addHTML('
');\n menu.models.addBool('gestures', human.config.gesture, 'enabled', (val) => human.config.gesture.enabled = val);\n menu.models.addHTML('
');\n menu.models.addBool('face compare', human.config.face.embedding, 'enabled', (val) => {\n human.config.face.embedding.enabled = val;\n original = null;\n });\n\n document.getElementById('btnDisplay').addEventListener('click', (evt) => menu.display.toggle(evt));\n document.getElementById('btnImage').addEventListener('click', (evt) => menu.image.toggle(evt));\n document.getElementById('btnProcess').addEventListener('click', (evt) => menu.process.toggle(evt));\n document.getElementById('btnModel').addEventListener('click', (evt) => menu.models.toggle(evt));\n document.getElementById('btnStart').addEventListener('click', () => detectVideo());\n document.getElementById('play').addEventListener('click', () => detectVideo());\n}\n\nasync function drawWarmup(res) {\n const canvas = document.getElementById('canvas');\n canvas.width = res.canvas.width;\n canvas.height = res.canvas.height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(res.canvas, 0, 0, res.canvas.width, res.canvas.height, 0, 0, canvas.width, canvas.height);\n await human.draw.all(canvas, res);\n}\n\nasync function main() {\n log('Demo starting ...');\n setupMenu();\n document.getElementById('log').innerText = `Human: version ${human.version}`;\n if (ui.modelsPreload && !ui.useWorker) {\n status('loading');\n await human.load(userConfig); // this is not required, just pre-loads all models\n const loaded = Object.keys(human.models).filter((a) => human.models[a]);\n log('Demo loaded models:', loaded);\n }\n if (!ui.useWorker) {\n status('initializing');\n const res = await human.warmup(userConfig); // this is not required, just pre-warms all models for faster initial inference\n if (res && res.canvas && ui.drawWarmup) await drawWarmup(res);\n }\n status('human: ready');\n document.getElementById('loader').style.display = 'none';\n document.getElementById('play').style.display = 'block';\n log('Demo ready...');\n}\n\nwindow.onload = main;\nwindow.onresize = setupCamera;\n"], + "sourcesContent": ["import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\n// Detect the global object, even if operating in strict mode.\n// http://stackoverflow.com/a/14387057/265298\nvar global = (0, eval)('this'),\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport * as packageBundle from '@tensorflow/tfjs/package.json';\nimport * as packageCore from '@tensorflow/tfjs-core/package.json';\nimport * as packageData from '@tensorflow/tfjs-data/package.json';\nimport * as packageLayers from '@tensorflow/tfjs-layers/package.json';\nimport * as packageConverter from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs: packageBundle.version,\n 'tfjs-core': packageCore.version,\n 'tfjs-data': packageData.version,\n 'tfjs-layers': packageLayers.version,\n 'tfjs-converter': packageConverter.version,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json',\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\nb9a7LfBTfS1vWI2jf12VfQPSW8KX2mas+NC2iv6xMNfJpMnLtEbuuxtMRCtzF55NR5rPps1N/ctP\ny6uHreE6nXZ4pak48X3rT06fB7fNeI33cbX6mI32R/MWu7XF116aDSRhxbRERs8f499bkyZeeKae\nkzE2mdon81/tfxDLGOunwbzlzbx08oaHBvZHJlx48mrvaa94pu04y617576rNGLRRM0397JEd/lu\n9Dw/S3x4qxffo6mm4NjwUiKY4iI9Ib1dHFY6QIaNabbrYrLfrpJtaK1rMzPZb/s+05IpP59OyLeJ\nk7eNfRaOc1ue32I7fGXYpi5Y77M8OGMeOKxHSFsU3Y29deZMzirl6dlVvhLatCjJHeYQv1rXnps1\n8k9/VsW6qLVmZIi1rzitlvFKRvaZ2h6TSaenC9FFY+3brM+sqeG8Prp4+kZ+lvuxPkr1mqm95nfp\nDXM459676a2q1dsV7XietvNno78+CJn1cjX6mOeIm0bR33dfRU5NJjidt9t5afjG/V6JZ7I2QMNh\nnyo2BhsMuVG3wAhMSbbQRAMolnE+iuGUSCyJZRKuGUSCyJZK4llEgyZMYTuCUsYSCQASISAAAlCQ\nAAAAAAEoASCASAAAAAAAAAAAAlACRACQAAAAAAAAAEgCEoASCAAAAAAAAAAAAAAAAAAAAAAABAAA\nAAAAAAAISAIAAAAAAQAAACASgAAAQJAQAAhIDHZhln3do7z0WS18mWsajHjmes7pg3dNi5aRMNqO\nyvDHTpPRaigHZhN4hHRlaVN59JY3zRENLUavaO+yq0iNVlitJ6vNcR1MVi0zO0era1/Ea0rPvbz5\nPM5MWp45qvo2GZrhmfrsnpHpHzTCseEcM/2vrr8Q1Eb4qzy44nziPN63HpYiIiI7LNHoqabBTFii\nIpSNohuVxrKtWMEejPwY9G1FFmHB4mWJn7MdfnIM9JpIx15to5pbUaas/a6rqViI7MxPxqX0UT1r\nO3wVzpbR2hviP5i03Y5s6a879FNtHljydhExCv8AMTPJXBnRZbz0iG5ptFjwe/l96zctMVamTJtE\nyTMibu1VrdTzRMR0j0ed4lr64MVpm0RERvMz5NvX62uOJ69XhOKX1HH9bHDtFvNYnfJeOy0Z2ojX\n6jjnEq6fRUmccTvN/J9H0eKcOnx45neaxEbubwHgOHg+milI3vP2resu3Wu0JQmITsmISDHZHKz2\nJgFc1RMLJhGwK9iIZ7MZgEdgmAEwyiWCdwWRLKJVxKYsC2JTuriWUSDNlEsIlMAySx3SCRCQSIAS\nAAACRACQAAAAAAASIASAAAAAAAAAAAAAAACRACRACQASIAAAAAAAAAAAAAAAAAAAAAAAAQCUAAAA\nAAAAAAIAAAAAAAAQAAAAAACBICBICAAEJAQJQCJcLjuS2ny6fPG/LWdpd1o8T0X07SXx/e7wCdJx\nWa0jmneHQpxPDMdZmJfNtZm49weZrh0/j4o7VtSZ2+Uw0/8A7o49k92vBLc/ntFohFW9PqGXimOI\n6Tu1L8T3eCx6r2t1O3JwvHjifO99v7t/Bwf2l1PXU6rS6eJ8qUm8x+so5TsekzcSjbvs4mt4rzW5\nK2mbT0itesy2cHsvbvqtbmyz5xERWP2jd1tJwrTaONsOKtZ8585+cnDrzmn4Rq+IZObUROHD32n7\nVv8A0ej0uhxaXFGPFSK1j0bkY4jyZRVZVXFGUVWbGwKsk8mObekNrSW3pWf1a2aYjHbm7bNnQ1id\nPW0TvuDdhJEbQABMsLW2R0ZTMQrvfbz2YWzVhpanUxEd0dWkW5c8R5uXxDX1w4pnfr5Q19XxKuOJ\n2neXltVqtVxbV/RdJ715+1bypANfiOu1HENV9C0MTfNeesx2rD1PAeBYuE6aKx72W3W9/WVnBuB4\neF4dqRzZbdb5J72l160WVK02ZxCYhOwI23TsnY2BGxsnYBjsiYZsZBjMMZZSgGEolMsQDdG6NwZ7\npiVe6YkFsSziVMWZRILolMSriWUSCyJTuwhMSDMRCQSI3SAlACRCQAAEoAEoASAAAAAAAAACUACR\nACQAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAABAAAAAAAAAAAAACBKAAAAAAAQ\nJQAAAhICEbJAYTWJ7wx8KvpC0BV4ceieWGewDHlNmWwCNjZICNhIDmcZredBecdpiY69FXCOLW+i\nUiZidukulmxxlx2paN4mNng+K4+I8Hy2yaTfl37TXetoCPfRxfp1qi3F48ofKMvtvxak8s6LDv61\nrZji9rPaLUf5PC+bfttS0q8q3p9W/wBrRMdpUZuKdN99nzvFqPbTVz7nD8OKs+do2/mW3h4D7Xaq\nZnPrtNpqz35aRaYOHY9Zk4pNt9rR+rl6zi+OnS+WN57Rv1lXp/YrNaYtruL6zNPnGO3hxP6O5w/2\nf0HDuun09Yv55Le9afznqcOvO4tBreMTHu30unnva0bWt8on+70nDuE4OHYYx4Kbesz3tPrMuhGO\nIjpDOKrK9YVpsyiGUQnYGOyUgI2SlAIEmwMWMs9kTAMJYzDOYRMArmGErZhhMArlHmzmGMwDE3Ts\nbAbs4swj5pgFkSziVcM4BZEsolXDKAZwyhjCYBkACQhIAAAAAAAJAAAAAAAAAAAAAAAAAAAShIAA\nAAAAAAJAAAAAAAAAAAAAABAJEAAAAAAAAAAAAAAAIEoBKAAAAAAAAAAAAAAABAlAAAAAAAIAAAAA\nBAkBAkBAkBAlACEgMZjdjbFW8bWrEx8YWANb6Fp+bfwab+vLDKMFK9qxH5L0bAr8OPRPKz2AY7J2\nSbAjYZAI2E7AIEgIEgIEgMdkSy2NgY7MdlmyNoBXsxmFuyNgVTVjNV3KjlBRNTlXTVHKCrlIqt5T\nlBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n", "let instance = 0;\nlet CSScreated = false;\n\nlet theme = {\n background: 'darkslategray',\n hover: 'lightgray',\n itemBackground: 'black',\n itemColor: 'white',\n buttonBackground: 'lightblue',\n buttonHover: 'lightgreen',\n checkboxOn: 'lightgreen',\n checkboxOff: 'lightcoral',\n rangeBackground: 'lightblue',\n rangeLabel: 'white',\n chartColor: 'lightblue',\n};\n\nfunction createCSS() {\n if (CSScreated) return;\n const css = `\n :root { --rounded: 0.1rem; }\n .menu { position: absolute; top: 0rem; right: 0; width: max-content; padding: 0 0.2rem 0 0.2rem; line-height: 1.8rem; z-index: 10;\n box-shadow: 0 0 8px dimgrey; background: ${theme.background}; border-radius: var(--rounded); border-color: black; border-style: solid; border-width: thin; }\n\n .menu:hover { box-shadow: 0 0 8px ${theme.hover}; }\n .menu-container { display: block; max-height: 100vh; }\n .menu-container-fadeout { max-height: 0; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-container-fadein { max-height: 100vh; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-item { display: flex; white-space: nowrap; padding: 0.2rem; cursor: default; width: 100%; }\n .menu-title { cursor: pointer; }\n .menu-hr { margin: 0.2rem; border: 1px solid rgba(0, 0, 0, 0.5) }\n .menu-label { padding: 0; font-weight: 800; }\n\n .menu-list { margin-right: 0.8rem; }\n select:focus { outline: none; }\n .menu-list-item { background: ${theme.itemBackground}; color: ${theme.itemColor}; border: none; padding: 0.2rem; font-family: inherit;\n font-variant: inherit; border-radius: var(--rounded); font-weight: 800; }\n\n .menu-chart-title { padding: 0; font-size: 0.8rem; font-weight: 800; align-items: center}\n .menu-chart-canvas { background: transparent; margin: 0.2rem 0 0.2rem 0.6rem; }\n \n .menu-button { border: 0; background: ${theme.buttonBackground}; width: -webkit-fill-available; padding: 8px; margin: 8px; cursor: pointer; box-shadow: 4px 4px 4px 0 dimgrey;\n border-radius: var(--rounded); justify-content: center; font-family: inherit; font-variant: inherit; font-size: 1rem; font-weight: 800; }\n .menu-button:hover { background: ${theme.buttonHover}; box-shadow: 4px 4px 4px 0 black; }\n .menu-button:focus { outline: none; }\n\n .menu-checkbox { width: 2.8rem; height: 1rem; background: ${theme.itemBackground}; margin: 0.5rem 0.5rem 0 0; position: relative; border-radius: var(--rounded); }\n .menu-checkbox:after { content: 'OFF'; color: ${theme.checkboxOff}; position: absolute; right: 0.2rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox:before { content: 'ON'; color: ${theme.checkboxOn}; position: absolute; left: 0.3rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox-label { width: 1.3rem; height: 0.8rem; cursor: pointer; position: absolute; top: 0.1rem; left: 0.1rem; z-index: 1; background: ${theme.checkboxOff};\n border-radius: var(--rounded); transition: left 0.6s ease; }\n\n input[type=checkbox] { visibility: hidden; }\n input[type=checkbox]:checked + label { left: 1.4rem; background: ${theme.checkboxOn}; }\n\n .menu-range { margin: 0.2rem 0.5rem 0 0; width: 3.5rem; background: transparent; color: ${theme.rangeBackground}; }\n .menu-range:before { color: ${theme.rangeLabel}; margin: 0 0.4rem 0 0; font-weight: 800; font-size: 0.6rem; position: relative; top: 0.3rem; content: attr(value); }\n\n input[type=range] { -webkit-appearance: none; }\n input[type=range]::-webkit-slider-runnable-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-moz-range-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-webkit-slider-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n input[type=range]::-moz-range-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n\n .svg-background { fill:darkslategrey; cursor:pointer; opacity: 0.6; }\n .svg-foreground { fill:white; cursor:pointer; opacity: 0.8; }\n `;\n const el = document.createElement('style');\n el.innerHTML = css;\n document.getElementsByTagName('head')[0].appendChild(el);\n CSScreated = true;\n}\n\nclass Menu {\n constructor(parent, title, position, userTheme) {\n if (userTheme) theme = { ...theme, ...userTheme };\n createCSS();\n this.createMenu(parent, title, position);\n this.id = 0;\n this.instance = instance;\n instance++;\n this._maxFPS = 0;\n this.hidden = 0;\n }\n\n createMenu(parent, title = '', position = { top: null, left: null, bottom: null, right: null }) {\n this.menu = document.createElement('div');\n this.menu.id = `menu-${instance}`;\n this.menu.className = 'menu';\n if (position) {\n if (position.top) this.menu.style.top = position.top;\n if (position.bottom) this.menu.style.bottom = position.bottom;\n if (position.left) this.menu.style.left = position.left;\n if (position.right) this.menu.style.right = position.right;\n }\n\n this.container = document.createElement('div');\n this.container.id = `menu-container-${instance}`;\n this.container.className = 'menu-container menu-container-fadein';\n\n // set menu title with pulldown arrow\n const elTitle = document.createElement('div');\n elTitle.className = 'menu-title';\n elTitle.id = `menu-title-${instance}`;\n const svg = `\n \n \n `;\n if (title) elTitle.innerHTML = `${title}${svg}`;\n this.menu.appendChild(elTitle);\n elTitle.addEventListener('click', () => {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n this.menu.style.borderStyle = this.container.classList.contains('menu-container-fadeout') ? 'none' : 'solid';\n });\n\n this.menu.appendChild(this.container);\n if (typeof parent === 'object') parent.appendChild(this.menu);\n else document.getElementById(parent).appendChild(this.menu);\n }\n\n get newID() {\n this.id++;\n return `menu-${this.instance}-${this.id}`;\n }\n\n get ID() {\n return `menu-${this.instance}-${this.id}`;\n }\n\n get width() {\n return this.menu.offsetWidth;\n }\n\n get height() {\n return this.menu.offsetHeight;\n }\n\n hide() {\n if (this.container.classList.contains('menu-container-fadein')) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n }\n }\n\n visible() {\n return (this.container.classList.contains('menu-container-fadein'));\n }\n\n toggle(evt) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n if (this.container.classList.contains('menu-container-fadein') && evt) {\n const x = evt.x || (evt.touches && evt.touches[0] ? evt.touches[0].pageX : null);\n // const y = evt.y || (evt.touches && evt.touches[0] ? evt.touches[0].pageY : null);\n if (x) this.menu.style.left = `${x - (this.menu.offsetWidth / 2)}px`;\n // if (y) this.menu.style.top = '5.5rem'; // `${evt.y + 55}px`;\n if (this.menu.offsetLeft < 0) this.menu.style.left = 0;\n if ((this.menu.offsetLeft + this.menu.offsetWidth) > window.innerWidth) {\n this.menu.style.left = null;\n this.menu.style.right = 0;\n }\n this.menu.style.borderStyle = 'solid';\n } else {\n this.menu.style.borderStyle = 'none';\n }\n }\n\n addTitle(title) {\n const el = document.createElement('div');\n el.className = 'menu-title';\n el.id = this.newID;\n el.innerHTML = title;\n this.menu.appendChild(el);\n el.addEventListener('click', () => {\n this.hidden = !this.hidden;\n const all = document.getElementsByClassName('menu');\n for (const item of all) {\n item.style.display = this.hidden ? 'none' : 'block';\n }\n });\n return el;\n }\n\n addLabel(title) {\n const el = document.createElement('div');\n el.className = 'menu-item menu-label';\n el.id = this.newID;\n el.innerHTML = title;\n this.container.appendChild(el);\n return el;\n }\n\n addBool(title, object, variable, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `
${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = evt.target.checked;\n if (callback) callback(evt.target.checked);\n });\n return el;\n }\n\n async addList(title, items, selected, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n let options = '';\n for (const item of items) {\n const def = item === selected ? 'selected' : '';\n options += ``;\n }\n el.innerHTML = `
${title}`;\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n if (callback) callback(items[evt.target.selectedIndex]);\n });\n return el;\n }\n\n addRange(title, object, variable, min, max, step, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = parseInt(evt.target.value) === parseFloat(evt.target.value) ? parseInt(evt.target.value) : parseFloat(evt.target.value);\n evt.target.setAttribute('value', evt.target.value);\n if (callback) callback(evt.target.value);\n });\n el.input = el.children[0];\n return el;\n }\n\n addHTML(html) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = this.newID;\n if (html) el.innerHTML = html;\n this.container.appendChild(el);\n return el;\n }\n\n addButton(titleOn, titleOff, callback) {\n const el = document.createElement('button');\n el.className = 'menu-item menu-button';\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n el.type = 'button';\n el.id = this.newID;\n el.innerText = titleOn;\n this.container.appendChild(el);\n el.addEventListener('click', () => {\n if (el.innerText === titleOn) el.innerText = titleOff;\n else el.innerText = titleOn;\n if (callback) callback(el.innerText !== titleOn);\n });\n return el;\n }\n\n addValue(title, val, suffix = '') {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = `menu-val-${title}`;\n el.innerText = `${title}: ${val}${suffix}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n updateValue(title, val, suffix = '') {\n const el = document.getElementById(`menu-val-${title}`);\n if (el) el.innerText = `${title}: ${val}${suffix}`;\n else this.addValue(title, val);\n }\n\n addChart(title, id, width = 150, height = 40, color) {\n if (color) theme.chartColor = color;\n const el = document.createElement('div');\n el.className = 'menu-item menu-chart-title';\n el.id = this.newID;\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n async updateChart(id, values) {\n if (!values || (values.length === 0)) return;\n const canvas = document.getElementById(`menu-canvas-${id}`);\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = theme.background;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const width = canvas.width / values.length;\n const max = 1 + Math.max(...values);\n const height = canvas.height / max;\n for (let i = 0; i < values.length; i++) {\n const gradient = ctx.createLinearGradient(0, (max - values[i]) * height, 0, 0);\n gradient.addColorStop(0.1, theme.chartColor);\n gradient.addColorStop(0.4, theme.background);\n ctx.fillStyle = gradient;\n ctx.fillRect(i * width, 0, width - 4, canvas.height);\n ctx.fillStyle = theme.background;\n ctx.font = `${width / 1.5}px \"Segoe UI\"`;\n ctx.fillText(Math.round(values[i]), i * width + 1, canvas.height - 1, width - 1);\n }\n }\n}\n\nexport default Menu;\n", "/* eslint-disable max-len */\n\n// based on: https://github.com/munrocket/gl-bench\n\nconst UICSS = `\n #gl-bench { position: absolute; right: 1rem; bottom: 1rem; z-index:1000; -webkit-user-select: none; -moz-user-select: none; user-select: none; }\n #gl-bench div { position: relative; display: block; margin: 4px; padding: 0 2px 0 2px; background: darkslategray; border-radius: 0.1rem; cursor: pointer; opacity: 0.9; }\n #gl-bench svg { height: 60px; margin: 0 0px 0px 4px; }\n #gl-bench text { font-size: 16px; font-family: 'Lato', 'Segoe UI'; dominant-baseline: middle; text-anchor: middle; }\n #gl-bench .gl-mem { font-size: 12px; fill: white; }\n #gl-bench .gl-fps { font-size: 13px; fill: white; }\n #gl-bench line { stroke-width: 5; stroke: white; stroke-linecap: round; }\n #gl-bench polyline { fill: none; stroke: white; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3.5; }\n #gl-bench rect { fill: black; }\n #gl-bench .opacity { stroke: black; }\n `;\n\nconst UISVG = `\n
\n \n 00 FPS\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n `;\n\nclass GLBench {\n /** GLBench constructor\n * @param { WebGLRenderingContext | WebGL2RenderingContext } gl context\n * @param { Object | undefined } settings additional settings\n */\n constructor(gl, settings = {}) {\n this.css = UICSS;\n this.svg = UISVG;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.paramLogger = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.chartLogger = () => {};\n this.chartLen = 20;\n this.chartHz = 20;\n\n this.names = [];\n this.cpuAccums = [];\n this.gpuAccums = [];\n this.activeAccums = [];\n this.chart = new Array(this.chartLen);\n this.now = () => ((performance && performance.now) ? performance.now() : Date.now());\n this.updateUI = () => {\n [].forEach.call(this.nodes['gl-gpu-svg'], (node) => node.style.display = this.trackGPU ? 'inline' : 'none');\n };\n\n Object.assign(this, settings);\n this.detected = 0;\n this.finished = [];\n this.isFramebuffer = 0;\n this.frameId = 0;\n\n // 120hz device detection\n let rafId; let n = 0; let\n t0;\n const loop = (t) => {\n if (++n < 20) {\n rafId = requestAnimationFrame(loop);\n } else {\n this.detected = Math.ceil(1e3 * n / (t - t0) / 70);\n cancelAnimationFrame(rafId);\n }\n if (!t0) t0 = t;\n };\n requestAnimationFrame(loop);\n\n // attach gpu profilers\n if (gl) {\n const glFinish = async (t, activeAccums) => Promise.resolve(setTimeout(() => {\n gl.getError();\n const dt = this.now() - t;\n activeAccums.forEach((active, i) => {\n if (active) this.gpuAccums[i] += dt;\n });\n }, 0));\n\n const addProfiler = (fn, self, target) => {\n const t = self.now();\n // eslint-disable-next-line prefer-rest-params\n fn.apply(target, arguments);\n if (self.trackGPU) self.finished.push(glFinish(t, self.activeAccums.slice(0)));\n };\n\n /* ['drawArrays', 'drawElements', 'drawArraysInstanced', 'drawBuffers', 'drawElementsInstanced', 'drawRangeElements'].forEach((fn) => {\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n }\n });\n */\n const fn = 'drawElements';\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n } else {\n // eslint-disable-next-line no-console\n console.log('bench: cannot attach to webgl function');\n }\n\n /*\n gl.getExtension = ((fn, self) => {\n // eslint-disable-next-line prefer-rest-params\n const ext = fn.apply(gl, arguments);\n if (ext) {\n ['drawElementsInstancedANGLE', 'drawBuffersWEBGL'].forEach((fn2) => {\n if (ext[fn2]) {\n ext[fn2] = addProfiler(ext[fn2], self, ext);\n }\n });\n }\n return ext;\n })(gl.getExtension, this);\n */\n }\n\n // init ui and ui loggers\n if (!this.withoutUI) {\n if (!this.dom) this.dom = document.body;\n const elm = document.createElement('div');\n elm.id = 'gl-bench';\n this.dom.appendChild(elm);\n this.dom.insertAdjacentHTML('afterbegin', '');\n this.dom = elm;\n this.dom.addEventListener('click', () => {\n this.trackGPU = !this.trackGPU;\n this.updateUI();\n });\n\n this.paramLogger = ((logger, dom, names) => {\n const classes = ['gl-cpu', 'gl-gpu', 'gl-mem', 'gl-fps', 'gl-gpu-svg', 'gl-chart'];\n const nodes = { ...classes };\n classes.forEach((c) => nodes[c] = dom.getElementsByClassName(c));\n this.nodes = nodes;\n return (i, cpu, gpu, mem, fps, totalTime, frameId) => {\n nodes['gl-cpu'][i].style.strokeDasharray = (cpu * 0.27).toFixed(0) + ' 100';\n nodes['gl-gpu'][i].style.strokeDasharray = (gpu * 0.27).toFixed(0) + ' 100';\n // eslint-disable-next-line no-nested-ternary\n nodes['gl-mem'][i].innerHTML = names[i] ? names[i] : (mem ? 'mem: ' + mem.toFixed(0) + 'mb' : '');\n nodes['gl-fps'][i].innerHTML = 'FPS: ' + fps.toFixed(1);\n logger(names[i], cpu, gpu, mem, fps, totalTime, frameId);\n };\n })(this.paramLogger, this.dom, this.names);\n\n this.chartLogger = ((logger, dom) => {\n const nodes = { 'gl-chart': dom.getElementsByClassName('gl-chart') };\n return (i, chart, circularId) => {\n let points = '';\n const len = chart.length;\n for (let j = 0; j < len; j++) {\n const id = (circularId + j + 1) % len;\n if (chart[id] !== undefined) points = points + ' ' + (60 * j / (len - 1)).toFixed(1) + ',' + (45 - chart[id] * 0.5 / this.detected).toFixed(1);\n }\n nodes['gl-chart'][i].setAttribute('points', points);\n logger(this.names[i], chart, circularId);\n };\n })(this.chartLogger, this.dom);\n }\n }\n\n /**\n * Explicit UI add\n * @param { string | undefined } name\n */\n addUI(name) {\n if (this.names.indexOf(name) === -1) {\n this.names.push(name);\n if (this.dom) {\n this.dom.insertAdjacentHTML('beforeend', this.svg);\n this.updateUI();\n }\n this.cpuAccums.push(0);\n this.gpuAccums.push(0);\n this.activeAccums.push(false);\n }\n }\n\n /**\n * Increase frameID\n * @param { number | undefined } now\n */\n nextFrame(now) {\n this.frameId++;\n const t = now || this.now();\n\n // params\n if (this.frameId <= 1) {\n this.paramFrame = this.frameId;\n this.paramTime = t;\n } else {\n const duration = t - this.paramTime;\n if (duration >= 1e3) {\n const frameCount = this.frameId - this.paramFrame;\n const fps = frameCount / duration * 1e3;\n for (let i = 0; i < this.names.length; i++) {\n const cpu = this.cpuAccums[i] / duration * 100;\n const gpu = this.gpuAccums[i] / duration * 100;\n const mem = (performance && performance.memory) ? performance.memory.usedJSHeapSize / (1 << 20) : 0;\n this.paramLogger(i, cpu, gpu, mem, fps, duration, frameCount);\n this.cpuAccums[i] = 0;\n Promise.all(this.finished).then(() => {\n this.gpuAccums[i] = 0;\n this.finished = [];\n });\n }\n this.paramFrame = this.frameId;\n this.paramTime = t;\n }\n }\n\n // chart\n if (!this.detected || !this.chartFrame) {\n this.chartFrame = this.frameId;\n this.chartTime = t;\n this.circularId = 0;\n } else {\n const timespan = t - this.chartTime;\n let hz = this.chartHz * timespan / 1e3;\n while (--hz > 0 && this.detected) {\n const frameCount = this.frameId - this.chartFrame;\n const fps = frameCount / timespan * 1e3;\n this.chart[this.circularId % this.chartLen] = fps;\n for (let i = 0; i < this.names.length; i++) this.chartLogger(i, this.chart, this.circularId);\n this.circularId++;\n this.chartFrame = this.frameId;\n this.chartTime = t;\n }\n }\n }\n\n /**\n * Begin named measurement\n * @param { string | undefined } name\n */\n begin(name) {\n this.updateAccums(name);\n }\n\n /**\n * End named measure\n * @param { string | undefined } name\n */\n end(name) {\n this.updateAccums(name);\n }\n\n updateAccums(name) {\n let nameId = this.names.indexOf(name);\n if (nameId === -1) {\n nameId = this.names.length;\n this.addUI(name);\n }\n\n const t = this.now();\n const dt = t - this.t0;\n for (let i = 0; i < nameId + 1; i++) {\n if (this.activeAccums[i]) this.cpuAccums[i] += dt;\n }\n this.activeAccums[nameId] = !this.activeAccums[nameId];\n this.t0 = t;\n }\n}\n\nexport default GLBench;\n", "// import Human from '../dist/human.esm.js'; // equivalent of @vladmandic/human\nimport Human from '../src/human';\nimport Menu from './menu.js';\nimport GLBench from './gl-bench.js';\n\n// const userConfig = { backend: 'webgl' }; // add any user configuration overrides\n\nconst userConfig = {\n backend: 'webgl',\n async: false,\n warmup: 'face',\n videoOptimized: false,\n face: { enabled: true, mesh: { enabled: false }, iris: { enabled: false }, age: { enabled: false }, gender: { enabled: false }, emotion: { enabled: false }, embedding: { enabled: true } },\n hand: { enabled: false },\n gesture: { enabled: false },\n body: { enabled: false, modelPath: '../models/blazepose.json' },\n};\n\nconst human = new Human(userConfig);\n\n// ui options\nconst ui = {\n baseBackground: 'rgba(50, 50, 50, 1)', // 'grey'\n crop: true, // video mode crop to size or leave full frame\n columns: 2, // when processing sample images create this many columns\n facing: true, // camera facing front or back\n useWorker: false, // use web workers for processing\n worker: 'worker.js',\n samples: ['../assets/sample6.jpg', '../assets/sample1.jpg', '../assets/sample4.jpg', '../assets/sample5.jpg', '../assets/sample3.jpg', '../assets/sample2.jpg'],\n compare: '../assets/sample-me.jpg',\n console: true, // log messages to browser console\n maxFPSframes: 10, // keep fps history for how many frames\n modelsPreload: true, // preload human models on startup\n busy: false, // internal camera busy flag\n menuWidth: 0, // internal\n menuHeight: 0, // internal\n camera: {}, // internal, holds details of webcam details\n detectFPS: [], // internal, holds fps values for detection performance\n drawFPS: [], // internal, holds fps values for draw performance\n buffered: false, // experimental, should output be buffered between frames\n drawWarmup: true, // debug only, should warmup image processing be displayed on startup\n drawThread: null, // internl, perform draw operations in a separate thread\n detectThread: null, // internl, perform detect operations in a separate thread\n framesDraw: 0, // internal, statistics on frames drawn\n framesDetect: 0, // internal, statistics on frames detected\n bench: true, // show gl fps benchmark window\n lastFrame: 0, // time of last frame processing\n};\n\n// global variables\nconst menu = {};\nlet worker;\nlet bench;\nlet lastDetectedResult = {};\n\n// helper function: translates json to human readable string\nfunction str(...msg) {\n if (!Array.isArray(msg)) return msg;\n let line = '';\n for (const entry of msg) {\n if (typeof entry === 'object') line += JSON.stringify(entry).replace(/{|}|\"|\\[|\\]/g, '').replace(/,/g, ', ');\n else line += entry;\n }\n return line;\n}\n\n// helper function: wrapper around console output\nfunction log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (ui.console) console.log(ts, ...msg);\n}\n\nfunction status(msg) {\n // eslint-disable-next-line no-console\n const div = document.getElementById('status');\n if (div) div.innerText = msg;\n}\n\nlet original;\nasync function calcSimmilariry(result) {\n document.getElementById('compare-container').style.display = human.config.face.embedding.enabled ? 'block' : 'none';\n if (!human.config.face.embedding.enabled) return;\n if ((result?.face?.length > 0) && (result?.face[0].embedding?.length !== 192)) return;\n if (!original) {\n original = result;\n document.getElementById('compare-canvas').getContext('2d').drawImage(original.canvas, 0, 0, 200, 200);\n }\n const simmilarity = human.simmilarity(original?.face[0]?.embedding, result?.face[0]?.embedding);\n document.getElementById('simmilarity').innerText = `simmilarity: ${Math.trunc(1000 * simmilarity) / 10}%`;\n}\n\n// draws processed results and starts processing of a next frame\nlet lastDraw = performance.now();\nasync function drawResults(input) {\n const result = lastDetectedResult;\n const canvas = document.getElementById('canvas');\n\n // update draw fps data\n ui.drawFPS.push(1000 / (performance.now() - lastDraw));\n if (ui.drawFPS.length > ui.maxFPSframes) ui.drawFPS.shift();\n lastDraw = performance.now();\n\n // draw fps chart\n await menu.process.updateChart('FPS', ui.detectFPS);\n\n // get updated canvas\n if (ui.buffered || !result.canvas) {\n const image = await human.image(input);\n result.canvas = image.canvas;\n human.tf.dispose(image.tensor);\n }\n\n // draw image from video\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = ui.baseBackground;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n if (result.canvas) {\n if (result.canvas.width !== canvas.width) canvas.width = result.canvas.width;\n if (result.canvas.height !== canvas.height) canvas.height = result.canvas.height;\n ctx.drawImage(result.canvas, 0, 0, result.canvas.width, result.canvas.height, 0, 0, result.canvas.width, result.canvas.height);\n } else {\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n }\n\n // draw all results\n human.draw.face(canvas, result.face);\n human.draw.body(canvas, result.body);\n human.draw.hand(canvas, result.hand);\n human.draw.gesture(canvas, result.gesture);\n await calcSimmilariry(result);\n\n // update log\n const engine = human.tf.engine();\n const gpu = engine.backendInstance ? `gpu: ${(engine.backendInstance.numBytesInGPU ? engine.backendInstance.numBytesInGPU : 0).toLocaleString()} bytes` : '';\n const memory = `system: ${engine.state.numBytes.toLocaleString()} bytes ${gpu} | tensors: ${engine.state.numTensors.toLocaleString()}`;\n const processing = result.canvas ? `processing: ${result.canvas.width} x ${result.canvas.height}` : '';\n const avgDetect = Math.trunc(10 * ui.detectFPS.reduce((a, b) => a + b, 0) / ui.detectFPS.length) / 10;\n const avgDraw = Math.trunc(10 * ui.drawFPS.reduce((a, b) => a + b, 0) / ui.drawFPS.length) / 10;\n const warning = (ui.detectFPS.length > 5) && (avgDetect < 5) ? 'warning: your performance is low: try switching to higher performance backend, lowering resolution or disabling some models' : '';\n document.getElementById('log').innerHTML = `\n video: ${ui.camera.name} | facing: ${ui.camera.facing} | screen: ${window.innerWidth} x ${window.innerHeight} camera: ${ui.camera.width} x ${ui.camera.height} ${processing}
\n backend: ${human.tf.getBackend()} | ${memory}
\n performance: ${str(result.performance)}ms FPS process:${avgDetect} refresh:${avgDraw}
\n ${warning}
\n `;\n\n ui.framesDraw++;\n ui.lastFrame = performance.now();\n // if buffered, immediate loop but limit frame rate although it's going to run slower as JS is singlethreaded\n if (ui.buffered) {\n ui.drawThread = requestAnimationFrame(() => drawResults(input, canvas));\n } else if (!ui.buffered && ui.drawThread) {\n log('stopping buffered refresh');\n cancelAnimationFrame(ui.drawThread);\n ui.drawThread = null;\n }\n}\n\n// setup webcam\nasync function setupCamera() {\n if (ui.busy) return null;\n ui.busy = true;\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n const output = document.getElementById('log');\n const live = video.srcObject ? ((video.srcObject.getVideoTracks()[0].readyState === 'live') && (video.readyState > 2) && (!video.paused)) : false;\n let msg = '';\n status('setting up camera');\n // setup webcam. note that navigator.mediaDevices requires that page is accessed via https\n if (!navigator.mediaDevices) {\n msg = 'camera access not supported';\n output.innerText += `\\n${msg}`;\n log(msg);\n status(msg);\n ui.busy = false;\n return msg;\n }\n let stream;\n const constraints = {\n audio: false,\n video: { facingMode: ui.facing ? 'user' : 'environment', resizeMode: ui.crop ? 'crop-and-scale' : 'none' },\n };\n if (window.innerWidth > window.innerHeight) constraints.video.width = { ideal: window.innerWidth };\n else constraints.video.height = { ideal: (window.innerHeight - document.getElementById('menubar').offsetHeight) };\n try {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n } catch (err) {\n if (err.name === 'PermissionDeniedError' || err.name === 'NotAllowedError') msg = 'camera permission denied';\n else if (err.name === 'SourceUnavailableError') msg = 'camera not available';\n else msg = `camera error: ${err.message || err}`;\n output.innerText += `\\n${msg}`;\n status(msg);\n log('camera error:', err);\n ui.busy = false;\n return msg;\n }\n if (stream) video.srcObject = stream;\n else {\n ui.busy = false;\n return 'camera stream empty';\n }\n const track = stream.getVideoTracks()[0];\n const settings = track.getSettings();\n // log('camera constraints:', constraints, 'window:', { width: window.innerWidth, height: window.innerHeight }, 'settings:', settings, 'track:', track);\n ui.camera = { name: track.label?.toLowerCase(), width: settings.width, height: settings.height, facing: settings.facingMode === 'user' ? 'front' : 'back' };\n return new Promise((resolve) => {\n video.onloadeddata = async () => {\n video.width = video.videoWidth;\n video.height = video.videoHeight;\n canvas.width = video.width;\n canvas.height = video.height;\n canvas.style.width = canvas.width > canvas.height ? '100vw' : '';\n canvas.style.height = canvas.width > canvas.height ? '' : '100vh';\n ui.menuWidth.input.setAttribute('value', video.width);\n ui.menuHeight.input.setAttribute('value', video.height);\n // silly font resizing for paint-on-canvas since viewport can be zoomed\n if (live) video.play();\n // eslint-disable-next-line no-use-before-define\n if (live && !ui.detectThread) runHumanDetect(video, canvas);\n ui.busy = false;\n // do once more because onresize events can be delayed or skipped\n // if (video.width > window.innerWidth) await setupCamera();\n status('');\n resolve();\n };\n });\n}\n\nfunction initPerfMonitor() {\n if (!bench) {\n const gl = null;\n // cosnt gl = human.tf.engine().backend.gpgpu.gl;\n // if (!gl) log('bench cannot get tensorflow webgl context');\n bench = new GLBench(gl, {\n trackGPU: false, // this is really slow\n chartHz: 20,\n chartLen: 20,\n });\n bench.begin();\n }\n}\n\n// wrapper for worker.postmessage that creates worker if one does not exist\nfunction webWorker(input, image, canvas, timestamp) {\n if (!worker) {\n // create new webworker and add event handler only once\n log('creating worker thread');\n worker = new Worker(ui.worker, { type: 'module' });\n // after receiving message from webworker, parse&draw results and send new frame for processing\n worker.addEventListener('message', (msg) => {\n if (msg.data.result.performance && msg.data.result.performance.total) ui.detectFPS.push(1000 / msg.data.result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n lastDetectedResult = msg.data.result;\n ui.framesDetect++;\n if (!ui.drawThread) drawResults(input);\n // eslint-disable-next-line no-use-before-define\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n });\n }\n // pass image data as arraybuffer to worker by reference to avoid copy\n worker.postMessage({ image: image.data.buffer, width: canvas.width, height: canvas.height, userConfig }, [image.data.buffer]);\n}\n\n// main processing function when input is webcam, can use direct invocation or web worker\nfunction runHumanDetect(input, canvas, timestamp) {\n // if live video\n const live = input.srcObject && (input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState > 2) && (!input.paused);\n if (!live && input.srcObject) {\n // stop ui refresh\n if (ui.drawThread) cancelAnimationFrame(ui.drawThread);\n if (ui.detectThread) cancelAnimationFrame(ui.detectThread);\n ui.drawThread = null;\n ui.detectThread = null;\n // if we want to continue and camera not ready, retry in 0.5sec, else just give up\n if (input.paused) log('camera paused');\n else if ((input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState <= 2)) setTimeout(() => runHumanDetect(input, canvas), 500);\n else log(`camera not ready: track state: ${input.srcObject?.getVideoTracks()[0].readyState} stream state: ${input.readyState}`);\n clearTimeout(ui.drawThread);\n ui.drawThread = null;\n log('frame statistics: process:', ui.framesDetect, 'refresh:', ui.framesDraw);\n log('memory', human.tf.engine().memory());\n return;\n }\n status('');\n if (ui.useWorker) {\n // get image data from video as we cannot send html objects to webworker\n const offscreen = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(canvas.width, canvas.height) : document.createElement('canvas');\n offscreen.width = canvas.width;\n offscreen.height = canvas.height;\n const ctx = offscreen.getContext('2d');\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n const data = ctx.getImageData(0, 0, canvas.width, canvas.height);\n // perform detection in worker\n webWorker(input, data, canvas, userConfig, timestamp);\n } else {\n human.detect(input, userConfig).then((result) => {\n if (result.performance && result.performance.total) ui.detectFPS.push(1000 / result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n if (result.error) {\n log(result.error);\n document.getElementById('log').innerText += `\\nHuman error: ${result.error}`;\n } else {\n lastDetectedResult = result;\n if (!ui.drawThread) drawResults(input);\n ui.framesDetect++;\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n }\n });\n }\n}\n\n// main processing function when input is image, can use direct invocation or web worker\nasync function processImage(input) {\n return new Promise((resolve) => {\n const image = new Image();\n image.onload = async () => {\n log('Processing image:', encodeURI(image.src));\n const canvas = document.getElementById('canvas');\n image.width = image.naturalWidth;\n image.height = image.naturalHeight;\n canvas.width = human.config.filter.width && human.config.filter.width > 0 ? human.config.filter.width : image.naturalWidth;\n canvas.height = human.config.filter.height && human.config.filter.height > 0 ? human.config.filter.height : image.naturalHeight;\n const result = await human.detect(image, userConfig);\n lastDetectedResult = result;\n await drawResults(image);\n const thumb = document.createElement('canvas');\n thumb.className = 'thumbnail';\n thumb.width = window.innerWidth / (ui.columns + 0.1);\n thumb.height = thumb.width * canvas.height / canvas.width;\n if (result.face && result.face.length > 0) {\n thumb.title = result.face.map((a, i) => `#${i} face: ${Math.trunc(100 * a.faceConfidence)}% box: ${Math.trunc(100 * a.boxConfidence)}% age: ${Math.trunc(a.age)} gender: ${Math.trunc(100 * a.genderConfidence)}% ${a.gender}`).join(' | ');\n } else {\n thumb.title = 'no face detected';\n }\n const ctx = thumb.getContext('2d');\n ctx.drawImage(canvas, 0, 0, canvas.width, canvas.height, 0, 0, thumb.width, thumb.height);\n document.getElementById('samples-container').appendChild(thumb);\n image.src = '';\n resolve(true);\n };\n image.src = input;\n });\n}\n\n// just initialize everything and call main function\nasync function detectVideo() {\n document.getElementById('samples-container').style.display = 'none';\n document.getElementById('canvas').style.display = 'block';\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n if ((video.srcObject !== null) && !video.paused) {\n document.getElementById('play').style.display = 'block';\n document.getElementById('btnStart').className = 'button button-start';\n document.getElementById('btnStart').innerHTML = 'start
video';\n status('paused');\n video.pause();\n } else {\n const cameraError = await setupCamera();\n if (!cameraError) {\n document.getElementById('play').style.display = 'none';\n for (const m of Object.values(menu)) m.hide();\n status('');\n document.getElementById('btnStart').className = 'button button-stop';\n document.getElementById('btnStart').innerHTML = 'pause
video';\n await video.play();\n if (!ui.detectThread) runHumanDetect(video, canvas);\n } else {\n status(cameraError);\n }\n }\n}\n\n// just initialize everything and call main function\nasync function detectSampleImages() {\n userConfig.videoOptimized = false; // force disable video optimizations\n document.getElementById('play').style.display = 'none';\n document.getElementById('canvas').style.display = 'none';\n document.getElementById('samples-container').style.display = 'block';\n log('Running detection of sample images');\n status('processing images');\n document.getElementById('samples-container').innerHTML = '';\n for (const m of Object.values(menu)) m.hide();\n for (const image of ui.samples) await processImage(image);\n status('');\n}\n\nfunction setupMenu() {\n let x = [];\n if (window.innerWidth > 800) {\n // initial position of menu items, later it's calculated based on mouse coordinates\n x = [`${document.getElementById('btnDisplay').offsetLeft - 50}px`, `${document.getElementById('btnImage').offsetLeft - 50}px`, `${document.getElementById('btnProcess').offsetLeft - 50}px`, `${document.getElementById('btnModel').offsetLeft - 50}px`];\n } else {\n // absolute minimum spacing for menus\n x = ['0rem', '11rem', '21.1rem', '33rem'];\n }\n\n menu.display = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[0] });\n menu.display.addBool('perf monitor', ui, 'bench', (val) => ui.bench = val);\n menu.display.addBool('buffered output', ui, 'buffered', (val) => ui.buffered = val);\n menu.display.addBool('crop & scale', ui, 'crop', (val) => {\n ui.crop = val;\n setupCamera();\n });\n menu.display.addBool('camera facing', ui, 'facing', (val) => {\n ui.facing = val;\n setupCamera();\n });\n menu.display.addHTML('
');\n menu.display.addBool('use 3D depth', human.draw.options, 'useDepth');\n menu.display.addBool('draw with curves', human.draw.options, 'useCurves');\n menu.display.addBool('print labels', human.draw.options, 'drawLabels');\n menu.display.addBool('draw points', human.draw.options, 'drawPoints');\n menu.display.addBool('draw boxes', human.draw.options, 'drawBoxes');\n menu.display.addBool('draw polygons', human.draw.options, 'drawPolygons');\n menu.display.addBool('fill polygons', human.draw.options, 'fillPolygons');\n\n menu.image = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[1] });\n menu.image.addBool('enabled', human.config.filter, 'enabled', (val) => human.config.filter.enabled = val);\n ui.menuWidth = menu.image.addRange('image width', human.config.filter, 'width', 0, 3840, 10, (val) => human.config.filter.width = parseInt(val));\n ui.menuHeight = menu.image.addRange('image height', human.config.filter, 'height', 0, 2160, 10, (val) => human.config.filter.height = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addRange('brightness', human.config.filter, 'brightness', -1.0, 1.0, 0.05, (val) => human.config.filter.brightness = parseFloat(val));\n menu.image.addRange('contrast', human.config.filter, 'contrast', -1.0, 1.0, 0.05, (val) => human.config.filter.contrast = parseFloat(val));\n menu.image.addRange('sharpness', human.config.filter, 'sharpness', 0, 1.0, 0.05, (val) => human.config.filter.sharpness = parseFloat(val));\n menu.image.addRange('blur', human.config.filter, 'blur', 0, 20, 1, (val) => human.config.filter.blur = parseInt(val));\n menu.image.addRange('saturation', human.config.filter, 'saturation', -1.0, 1.0, 0.05, (val) => human.config.filter.saturation = parseFloat(val));\n menu.image.addRange('hue', human.config.filter, 'hue', 0, 360, 5, (val) => human.config.filter.hue = parseInt(val));\n menu.image.addRange('pixelate', human.config.filter, 'pixelate', 0, 32, 1, (val) => human.config.filter.pixelate = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addBool('negative', human.config.filter, 'negative', (val) => human.config.filter.negative = val);\n menu.image.addBool('sepia', human.config.filter, 'sepia', (val) => human.config.filter.sepia = val);\n menu.image.addBool('vintage', human.config.filter, 'vintage', (val) => human.config.filter.vintage = val);\n menu.image.addBool('kodachrome', human.config.filter, 'kodachrome', (val) => human.config.filter.kodachrome = val);\n menu.image.addBool('technicolor', human.config.filter, 'technicolor', (val) => human.config.filter.technicolor = val);\n menu.image.addBool('polaroid', human.config.filter, 'polaroid', (val) => human.config.filter.polaroid = val);\n\n menu.process = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[2] });\n menu.process.addList('backend', ['cpu', 'webgl', 'wasm', 'humangl'], human.config.backend, (val) => human.config.backend = val);\n menu.process.addBool('async operations', human.config, 'async', (val) => human.config.async = val);\n // menu.process.addBool('enable profiler', human.config, 'profile', (val) => human.config.profile = val);\n // menu.process.addBool('memory shield', human.config, 'deallocate', (val) => human.config.deallocate = val);\n menu.process.addBool('use web worker', ui, 'useWorker');\n menu.process.addHTML('
');\n menu.process.addLabel('model parameters');\n menu.process.addRange('max objects', human.config.face.detector, 'maxFaces', 1, 50, 1, (val) => {\n human.config.face.detector.maxFaces = parseInt(val);\n human.config.body.maxDetections = parseInt(val);\n human.config.hand.maxHands = parseInt(val);\n });\n menu.process.addRange('skip frames', human.config.face.detector, 'skipFrames', 0, 50, 1, (val) => {\n human.config.face.detector.skipFrames = parseInt(val);\n human.config.face.emotion.skipFrames = parseInt(val);\n human.config.face.age.skipFrames = parseInt(val);\n human.config.hand.skipFrames = parseInt(val);\n });\n menu.process.addRange('min confidence', human.config.face.detector, 'minConfidence', 0.0, 1.0, 0.05, (val) => {\n human.config.face.detector.minConfidence = parseFloat(val);\n human.config.face.gender.minConfidence = parseFloat(val);\n human.config.face.emotion.minConfidence = parseFloat(val);\n human.config.hand.minConfidence = parseFloat(val);\n });\n menu.process.addRange('score threshold', human.config.face.detector, 'scoreThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.scoreThreshold = parseFloat(val);\n human.config.hand.scoreThreshold = parseFloat(val);\n human.config.body.scoreThreshold = parseFloat(val);\n });\n menu.process.addRange('overlap', human.config.face.detector, 'iouThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.iouThreshold = parseFloat(val);\n human.config.hand.iouThreshold = parseFloat(val);\n });\n menu.process.addBool('detection rotation', human.config.face.detector, 'rotation', (val) => {\n human.config.face.detector.rotation = val;\n human.config.hand.rotation = val;\n });\n menu.process.addHTML('
');\n menu.process.addButton('process sample images', 'process images', () => detectSampleImages());\n menu.process.addHTML('
');\n menu.process.addChart('FPS', 'FPS');\n\n menu.models = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[3] });\n menu.models.addBool('face detect', human.config.face, 'enabled', (val) => human.config.face.enabled = val);\n menu.models.addBool('face mesh', human.config.face.mesh, 'enabled', (val) => human.config.face.mesh.enabled = val);\n menu.models.addBool('face iris', human.config.face.iris, 'enabled', (val) => human.config.face.iris.enabled = val);\n menu.models.addBool('face age', human.config.face.age, 'enabled', (val) => human.config.face.age.enabled = val);\n menu.models.addBool('face gender', human.config.face.gender, 'enabled', (val) => human.config.face.gender.enabled = val);\n menu.models.addBool('face emotion', human.config.face.emotion, 'enabled', (val) => human.config.face.emotion.enabled = val);\n menu.models.addHTML('
');\n menu.models.addBool('body pose', human.config.body, 'enabled', (val) => human.config.body.enabled = val);\n menu.models.addBool('hand pose', human.config.hand, 'enabled', (val) => human.config.hand.enabled = val);\n menu.models.addHTML('
');\n menu.models.addBool('gestures', human.config.gesture, 'enabled', (val) => human.config.gesture.enabled = val);\n menu.models.addHTML('
');\n menu.models.addBool('face compare', human.config.face.embedding, 'enabled', (val) => {\n human.config.face.embedding.enabled = val;\n original = null;\n });\n\n document.getElementById('btnDisplay').addEventListener('click', (evt) => menu.display.toggle(evt));\n document.getElementById('btnImage').addEventListener('click', (evt) => menu.image.toggle(evt));\n document.getElementById('btnProcess').addEventListener('click', (evt) => menu.process.toggle(evt));\n document.getElementById('btnModel').addEventListener('click', (evt) => menu.models.toggle(evt));\n document.getElementById('btnStart').addEventListener('click', () => detectVideo());\n document.getElementById('play').addEventListener('click', () => detectVideo());\n}\n\nasync function drawWarmup(res) {\n const canvas = document.getElementById('canvas');\n canvas.width = res.canvas.width;\n canvas.height = res.canvas.height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(res.canvas, 0, 0, res.canvas.width, res.canvas.height, 0, 0, canvas.width, canvas.height);\n await human.draw.all(canvas, res);\n}\n\nasync function main() {\n log('Demo starting ...');\n setupMenu();\n document.getElementById('log').innerText = `Human: version ${human.version}`;\n if (ui.modelsPreload && !ui.useWorker) {\n status('loading');\n await human.load(userConfig); // this is not required, just pre-loads all models\n const loaded = Object.keys(human.models).filter((a) => human.models[a]);\n log('Demo loaded models:', loaded);\n }\n if (!ui.useWorker) {\n status('initializing');\n const res = await human.warmup(userConfig); // this is not required, just pre-warms all models for faster initial inference\n if (res && res.canvas && ui.drawWarmup) await drawWarmup(res);\n }\n status('human: ready');\n document.getElementById('loader').style.display = 'none';\n document.getElementById('play').style.display = 'block';\n log('Demo ready...');\n}\n\nwindow.onload = main;\nwindow.onresize = setupCamera;\n"], "mappings": "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K,CAAC,QAAQ,KAAK,SAAA,WAAS,OAAO,CAAC,MAAM;AAEzD,gBAAc,QAAQ,CAAA,MAAK,UAAQ,8BAA8B;AAEjE,SAAO;;AAGF,IAAM,2BAAyC;EACpD,YAAY;EACZ,aAAa;EACb,YAAY;;ACrFd;;;;;;;;;;;;;;;;AAiLA,IAAM,gBAAgC;EACpC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF,WAAW,gBAAgB,eAAe;AACxC,iBAAe;;AC/UjB;;;;;;;;;;;;;;;;ACAA,IAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;AAiBA,IAAM,WAAmD;AAEzD,IAAM,mBAA2C;EAC/C,OAAO;EACP,WAAW;EACX,oBAAoB;EACpB,uBAAuB;EACvB,OAAO;EACP,SAAS;EACT,8BA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;AA6KA,IAAM,iBAAgC;EACpC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF,WAAW,gBAAgB,gBAAe;AACxC,iBAAe;;AC1UjB;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;AAkBA,IAAY;AAAZ,AAAA,UAAY,WAAQ;AAClB,YAAA,UAAA,aAAA,KAAA;AACA,YAAA,UAAA,WAAA,KAAA;AACA,YAAA,UAAA,UAAA,KAAA;AACA,YAAA,UAAA,YAAA,KAAA;AACA,YAAA,UAAA,eAAA,KAAA;GALU,YAAA,YAAQ;AASpB,IAAY;AAAZ,AAAA,UAAY,oBAAiB;AAC3B,qBAAA,mBAAA,YAAA,KAAA;AACA,qBAAA,mBAAA,UAAA,KAAA;AACA,qBAAA,mBAAA,WAAA,KAAA;AACA,qBAAA,mBAAA,WAAA,KAAA;AACA,qBAAA,mBAAA,eAAA,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AAU,EAAE,GAAG;AACjC,iBAAa,WAAW,YAAY,IAAI;;AAE1C,eAAa,WAAW,YAAY,MAAK,SAAS,OAAO;AACzD,QAAM,YAAY,UAAU;AAC5B,SAAO,MAAM,YAAY,UAAU;;ACxDrC;;;;;;;;;;;;;;;;AAsBO,IAAM,sBAAkC;EAC7C,YAAY;EACZ,UAAU,CAAC,OAAc;AACvB,WAAO,CAAC,GAAG,MAAM,UAAU;;;ACzB/B;;;;;;;;;;;;;;;;AAwHA,IAAM,cAA4B;EAChC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF,WAAW,kBAAkB,aAAa;AACxC,mBAAiB;;ACpOnB,IAAA,8BAAA;;;;;;;ACAA;;;;;;;;;AAaA,IAAI;AAKE,oBAAiB;AACrB,MAAI,YAAY,MAAM;AACpB,eAAW,UAAU;;AAEvB,SAAO;;AAcH,2BAAyB;AAC7B,SAAO;;ACrCT;;;;;;;;;AAuBM,IAAA,iBAAA,cAA8B,MAAK;EACvC,YAAY,SAAgB;AAC1B,UAAM;AAEN,WAAO,eAAe,MAAM,eAAe;;;AAOzC,IAAA,eAAA,cAA4B,MAAK;EACrC,YAAY,SAAgB;AAC1B,UAAM;AAEN,WAAO,eAAe,MAAM,aAAa;;;AAOvC,IAAA,aAAA,cAA0B,MAAK;EACnC,YAAY,SAAgB;AAC1B,UAAM;AAEN,W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AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,gBAAgB;AAAA,EACjB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA;AAGf,IAAM,SAAS;AAAA,EACpB;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACtJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACtJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACnJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;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;AAAA;AAAA;;;ACzJlB,IAAM,UAAU;AAAA,EACrB;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0Jb,IAAM,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3JpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,IAAM,UAAU;AAAA,EACrB,OAAO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", "names": [] } diff --git a/dist/human.esm-nobundle.js.map b/dist/human.esm-nobundle.js.map index 051b44e3..05d19859 100644 --- a/dist/human.esm-nobundle.js.map +++ b/dist/human.esm-nobundle.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/tfjs/tf-browser.ts", "../src/blazeface/facemesh.ts", "../src/posenet/keypoints.ts", "../src/log.ts", "../src/sysinfo.ts", "../src/human.ts", "../src/tfjs/backend.ts", "../src/blazeface/blazeface.ts", "../src/blazeface/facepipeline.ts", "../src/blazeface/box.ts", "../src/blazeface/util.ts", "../src/blazeface/coords.ts", "../src/age/age.ts", "../src/profile.ts", "../src/gender/gender.ts", "../src/emotion/emotion.ts", "../src/embedding/embedding.ts", "../src/posenet/posenet.ts", "../src/posenet/modelBase.ts", "../src/posenet/heapSort.ts", "../src/posenet/buildParts.ts", "../src/posenet/decodePose.ts", "../src/posenet/vectors.ts", "../src/posenet/decoders.ts", "../src/posenet/decodeMultiple.ts", "../src/posenet/util.ts", "../src/handpose/handpose.ts", "../src/handpose/handdetector.ts", "../src/handpose/box.ts", "../src/handpose/handpipeline.ts", "../src/handpose/util.ts", "../src/handpose/anchors.ts", "../src/blazepose/blazepose.ts", "../src/blazepose/annotations.ts", "../src/gesture/gesture.ts", "../src/image.ts", "../src/imagefx.js", "../config.js", "../src/sample.ts", "../src/draw.ts"], - "sourcesContent": ["// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport * as packageBundle from '@tensorflow/tfjs/package.json';\nimport * as packageCore from '@tensorflow/tfjs-core/package.json';\nimport * as packageData from '@tensorflow/tfjs-data/package.json';\nimport * as packageLayers from '@tensorflow/tfjs-layers/package.json';\nimport * as packageConverter from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs: packageBundle.version,\n 'tfjs-core': packageCore.version,\n 'tfjs-data': packageData.version,\n 'tfjs-layers': packageLayers.version,\n 'tfjs-converter': packageConverter.version,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json', // can be 'gender' or 'gender-ssrnet-imdb'\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n"], + "sourcesContent": ["// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport * as packageBundle from '@tensorflow/tfjs/package.json';\nimport * as packageCore from '@tensorflow/tfjs-core/package.json';\nimport * as packageData from '@tensorflow/tfjs-data/package.json';\nimport * as packageLayers from '@tensorflow/tfjs-layers/package.json';\nimport * as packageConverter from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs: packageBundle.version,\n 'tfjs-core': packageCore.version,\n 'tfjs-data': packageData.version,\n 'tfjs-layers': packageLayers.version,\n 'tfjs-converter': packageConverter.version,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json',\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA\nAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu\nbmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob\nIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgo\nKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgBAAEAAwEhAAIRAQMRAf/E\nAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAE\nEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZH\nSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1\ntre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEB\nAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXET\nIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFla\nY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG\nx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+qaKACigApGOKAML\nXp8xlF5A7V4X8RtYs7PzfNImnx8sa8Kp9z3q2tEgp6angWs62ZZ5CTGoJ6DArGNz5p+UrID6EUrF\nPUlW1EuN0XNW7PQ2L5j3JnoKXN0KijqNP0eYoqXBdgPuuo+ZPeupisWn2Jd4+0r924XgsQOCff3/\nAJ1FzRKxDqGii6m3siiQ8F1XGfXI6YNWLfRbiRQMkcZI9fpTDluT2/h6Qy8gDPbtmtG38JeY480Z\n5zSLUTZg8M28YwYxjAArXtdPt402qgHbpSaLWhma3o0Uqk7Nx9DWLaaVblgPs6qRyds2M/gRSQp9\nzZOni2iWS2hlQ+kjYz9OMGrdjq89vIPPVhj+8M/lQyDq9P1WOYBlMZz1AOD+VdDaTiReOKulK0jO\ntHmi0WDTlr0TyxRVhT8tJjIX+9SUxHXUV553BRQAVBcPhSBTSuxPY86+IGti0s5I7dsORy9fM3i6\n8e8mfDO5P90ZrWWiJicNPpZZtxV/xrW0jQt4DOv6Vk2dEEdTY6BHuB25rpbPSo0QARjP0qTRI17W\nwA/hFaMWmoQMgflQXYsDS142rU9tpqqenfNA7GgtihxkdKuRW6qMY/GkDZY8sY4Ap4hXbyB+VArk\nEtuH4wPyrk/EGkOm+a3jw3suRQLc5i38SX9hJ9nnY+XnBUdPyNdFY6pa3KkkAE9l6f8AfJ/pSJT6\nGhDmI+Zb4ZRycdv6ium0nUhKFydrelTsNnS2829RnrVgV6NKXNG55lWPLIM81Op+WrZkRMfmNNzT\nA7GivPO4KKAEY4XNYWt3vkwPg4OK0giJdjw/xrqhm87Zs8tc7pX5A+leSajf6aHYJ50kn4AZpTep\nrBWRm2Vobm4BXfyehPFdnpmnBFUY5rI2SN63tlToK0YI+KZpFF+3QdavwoKTLtoW0Toaswpk5pCb\nLCxipAhoIuP2dKevHXoaYDylRyxhlwRQI4nxVoCXWZI1GfpXGtbSWjYPGP73+NIGupt6TqMsLruZ\nih4xnP5V09mQ+JLd8gn0xSYJnVaVdkook69K34zuUGunDS3Rx4qOzHVIp4rrOMY3NJQI7GivPO8K\nKAILt9kZrz3xlebYiu8KCCWb0XvW0NFch6ysfO3jLVjfXLIn+pQkKorl7WxNxIPl71g2dUUdpo+l\npBGvHPet23iC8ihFosrxirkHQUFo0IF4FXI1O726CpKLacCrMJoJLYHAPpTwucHpSRJJ5e4AZI9x\nUqpxzVpCuOC8cUpQUMRnXttuB4rjNdsYyeVwfXpmpGmcvcQyafMCFJjPY10eg34BUg4DcZP8jUO4\nHaRq3lLNF+IHet7R7jz7c56rwa2wz9+xhiVeFy/T1PFegeaNPWigDsc0ZrzzvDNIaAM7VpNqdegr\nxL4l6kywyRhseZ19lrdfAZL4jxYg3Fw20d63tJsdrDI5rm3Z3R0R0Mce1eKnQYAplIkWrMJ45oZS\nNO3PHbNXIyfpSGWowSOasxLUiZdjFSqtNEMkUemKlAGKsRJjAppFAiORMjmsTVrNZEO4cfSoZSOD\n1eJ7WXBUzQZ+7nkfSo7e2Ei+ZaMzxntjBX2NSU1Y6/wxqojiEFzkA8KTXYaUoWRyv3W5rSjpNHPX\n+BmpSg8V6J5gUUAdhRXnneFFAGHrTfu5PpXzj8S70/aZtxzztXFbv4DKHxHI+H4GZiz9zxXXW8G3\nGBXMjvLRXAx0oPGPSmMVeOnWrMTYpFI0bcg1fh54xmgovRcD3qxETSIZcRvzp+/BpEkqsBUqsM9K\nq4Em4Gkxk0yRGXrVW6i8yFhkg+tJjRxGsWrxllkUMh9eK5uMz6bcebbnfG33kPcVkay2OntPKuo0\nnhXI67c8qa7Lw3c+adjcEDGK1paSRhVV4s6A0or0jyRRQ1AHX0V553hRQBz+vNtt5z3xXzX8Qbdm\nuic5YnOMdK3l8JnTXvlbwpYl+WySOgrp5YfLOOB9O1c62O7qQkc+9RsKChFPWp4DluOlSykaNruH\nArUgHShFNF2NT1qxGO3NBmyxGcE1N2560CFzjrUysO9JAPDDjFOVuKoQuSRTWouBkazbCa3cd8cV\nwF7IISQccHBzUSWpV9C3o1x5b5GAjdQD1rs9DjC3kckbEhqKfxIzn8LOupRXqnkPccBSkUAzraK8\n87wooA5rxMSI3HqK8B8bQl9Q8sffY5b/AAraXwkUviNrw9pH2W1ViMMRTdRjw4HpWNtDti9TPc4P\nFQs2M5qdyyMHLcfjV63HTAoBGtap0wK0YxigpsuRDtVhVYd6GQydVwwIqdRnqKCR23I5pCMUW6gD\nYNKuetAEise9KTxQBWuFyhrznxNZkXjFeN3I+tTIZg2OqmzmxNF0PO3vXp/g2+hukVl4zyPanTXv\nJmVR+60dpThXpnlPceopWFAbnV0V553hSGgRynjC5FujOey14Ssp1HxNmTnc+a3kvcIpv37HoEYQ\nQmMdVHSsnVbYJF5jVk0dsNzlruVIsl2wKxbjWrVHILjg1CRbZJb+ILHPzyhfStODWLQgFJFYd+el\nUJM27HUIXxhga1Y5lLVLKLkMnoauxnPPrSEx7ShF+Y/n2qrc6xBbhizDAqkK1zJuvG9nbg8ZA681\nly/Ei052RO3uKAsZlx8QGd8xxvt9Aa1NH8dK7AXMcip64zigdkdrZX8F7EJLdwwNXMkrz1qRMRly\nCK4TxmpidWI49felPYSOMmi80NIoOV6qRzXYeA5SskYPfirpfEjGr8LPWVHyD6U4CvQPL3ZItOYc\nUDOoNFeed4Uhpks4H4iE/Z5MeleMeGULeLgjds10S+BGdL+Jc9OSBU2Huc5Nc74yvUtrcDBrJnZF\n63PJdXvLy/lKWw46bvQVz82jXhkLO5Y+9ZlsYthcRnbIjY9R3q3awTRkEM3WmJI6C0ea3dGRsr1x\nXY6TqW9FLHnjrUs0izpLK5DDjofSta3ckH09KRUkZuuTvFGdvPauE1Y3U6Mqbssf/rUxHPTaJPK2\nZmJPbBqzY6DCZh5xJC9s9aBJHU6dpemJjfEmfetJtI0+VPkUr/unFOxdiextHs33W07YHQHk11mk\nXb3KbZ1xIvcd6LEyWho4Nct41sTPYb16ipexCPPZN+wYGCvH1rrPAEJmvkPoc1VL4kZVvgZ6yFwK\ncBXoHkkqinFaVyzo80GuE7WJRQSziPiGdthK5HQV4x4J/wBI8WPIewNdEvgRNL42emO/yj1UHNef\neNpRczbC+I17DvWT2OqJxc0sMK4TCisy41q0hfEkqj8aixdwTXNOlwvmqD9anS9tXH7uVG+hosO4\n/wC0oOhrR0+6G4YNIEzsNEuCxAPNdjZruA4xxUmjINSjURksOlcbqFykbnjFA1sYGoassaknCqO5\nrl7rxhGm7yBnBxuJq0rkSlYpw+NLlsfd5P8AerVsvHEqSBHwPVgcgVpyMyVXU3rXxcHYETAk+hru\n/DWti6ZSTyOKzZqndHaxvvUGq2rQ+dYyqR24qWI8dvbr7LqDxyDAzXpvw6FvIxePGSM06Xxoyr/A\nzviKFHNegeX1J41zUhXioGbuaSuM6wpCaBHG/EcA6HN/exxXjXw2jL67cv8A3Qa6H8CFR+NnoWpO\nI4XI44rxLxrqjQzSEsQM1gdSPM9U1uR1YbmWIdXHf2rmpIb67YS28UrRlsLI3c/jW0VZGUpO5pW1\njfLNOjahawzwReYI5cjzMkDavHJ5/SrVv9uhtPtVxCPLBwzxnlT9KGghLU3tKvvPjHzbl7EGuisJ\nGRxWLOg7nRXJEbDjmvSNK+aFSfSoZr0KutRkphc4NcRrdkVjL9aVio7Hk3iqS8ubhrWzUlsZY9kG\ncZNc5D4aee5MclzJIFTzHAO0MfatqSOWu7bFS1srDUZEis0vIZoUxPvfcC+4/dx2xjr712XiTwXb\nWmlQ6hol3cRhoFd4rlg3zY5wR0GelavQwjq7GD4etdVvSnk2wAB+9v8A8mvcfA2kXiRo0/UdcDis\nZnTTulqeoWqbUAJqWUb42X1FZlnjfjSwlGrr5S/eNdD4RkvLAAQ4yRyaUZcruVKl7TQ9I0G+mnzH\nckFwM8VuIK7ac3KF2eXiKapz5UWYxipNtMyNejNch0jSar3cjR27uoyQCRVRWom9DxTx54gu5fMi\nlbKdMVjfCZPNlv5v9rFbVHpYqjGzbOn8SzFI9o715L4u0r7arYzk+lYdTqSujy7U/C0u4vHk+WwO\nxuh9q3J9dgvbdVukMV1EwbDDgn04rZMwlHoZ+orZ6hfQ3RWVnQYCgZAq+8U0ln5NtBsV2yxYcfgK\nJtW0CnB31LlroVwJ1nQLGDjeP7w+lb0dsFxjrWB0tHS6NuWPJ6A16ToUm63T3Gallr4S7cxiTjrX\nPaxaF7dlVeSMUhxZ5jd+H7qCa4eF3DSE5x3zXN3Wk6jbyeaiFWUY6ZyPStYS5SalPmVipFbX0E4c\nW0alvmPHJrag0rVvEE6LdljGpG2NRtQD+tW5XMI0uU9M8NeFo9PiQhecDIIrtrOMIoG3H4VlJm9t\nC6CB06VPGM1IHLeItGS6uw+ORT7e3jsbQvj7gzUNam0JaWE+HN7NqOqX80n3FO1RXo8YzXdS+BHk\n4z+KyzGPapcU2YIv7qQtiuaxvcaWqG4O6FwfSrS1JbPnrxoxkv7qIfejcitj4V2f2exumI+8+aKn\nxHTT+G5d8Txlm4rjLxMsQwzWT3OiK0Mm6sEkVsAcjFc1d+FEmlGwEDPQVopaEuOpr6f4ZWNAu3tW\nvHpAj5ZQcUFIWaDjGMVUMQ3cVDBmvbhY7QAV2nh+T/R1yeKhlrY31+b61FcQK6nIoJMi401WblRi\nqr6PCw5UYq9y+YgOgWzNkRrx3xWjp+nx2v3FQcelAbmko9anQ4GBUNisPHWr1qMrQhS2K11HvmYV\nhamcxSRZ5xRIqluS/DKAQQXZxyXrvo2FdlL4EeZjH+/ZbjNSZpswLNBrE1Gt7VE4ODVIlnh/j61F\nj4lmeTGyUbq6LwdEqWbeX0YbhSqfEddP4Bddj4JIrhL5d8h7VjI6oLQqKNzelWre3yc4/ClFjaL6\nwqBxxUUxwCKu5BmXRA6c+9ZjP83FSBoQuPs4BrsNBlUW659KmRrDY6G1lyQtW3Hy0lqQ1qVJnAbm\noy3b9KYJCqRj3o4zRctIlhjLHmpSuOBRbQOpLGpPFaES7UqkZzKN1KsEc87/AHUUmvPLTVGv72aQ\nk7WJwKmRrQ3ud74Ltilgz4++2a6iNDXdS0gjyMU71my7GpqTbxSbMki3SViajTTHqkSeR/GeyZmg\nnQHkEE1S+F+oPPavBL96I4/Cia1udVF+4dVrkW+Fq8+v4tjMDWUkdVJ6WM0cNV+F+MVmjUcZgqnP\n1qpNNnkcVRLiZtxIS1UzzIF7mghlxUZpVQdq6nTVdAoAOKzkbQWhvwM6gMM1twOJYx3NOJE11Kt1\nH1/pVVlwBkk+9NocXoOQ45FPj+fkUJFF2NSB700v/hTEty5ZpkjvVyUgcCq6GM9zC14/8Se6GcZQ\n1574Xs5WkI2HBPHFQ1dm1KSSZ7Rotn9l0+KPHIHNacae1dy0Vjxaj5ptlhVp+2s2CJ9ppCKzuWNx\nzSFc1SYrHNeNdIGpaYw25ZeRXmvheyk0jVpEdcLJ0q3ZxNKTa0O3vQHg/DNcHrsJDmsmjspnNzNt\nfFIJ24GazOhC+azDmgZIOOKBsp3J2qSaZodubq58yQ4QAnmhGT3NO18pb7BORmu205LfYpyKVkWp\nOxr5gKYWoIZWgfGfloFq1qTPLubnGO1RPtxg4P0oBAkY/hBz6VNDDkZ6AU0W2WSdqkdKr9ZOaGSj\nVtcLHmnOcgmmYvcz7mBLy3MbdD1q9ouiRK6bUAVeelOC1InPlidSsWMDFOCEdq3uefykqrinYqGy\nrFvApMVka2DAowKAsMkRXQqwyDXn/iWyitNQ3qPl6itIvRoF8RXinW4tQ6HI6GuW8SIVBPalc6qe\n5x9x97r3qruwTjrWZ0ksZ9TUmcDNAmZ9/wAoao63rR0+w22MLPtAzt6mghmfofiB76LdJBJBIp5D\nd/oa7bSdWLIPnpDi9TM8TeKdas51XTbIyxd3J/pXS+E/EFxqNoFu7do5OmD60maHWrnZyDRkn/69\nMlEyOR0xntVoNx+FUgYjPxg4FLCuWDZyKQr2RoRnP0qO+nEFpJITgAUzLqZnhu6+0rknOTXpOmwJ\nFbrt5yMmnHYyr6Oxb2ijaKLnPYMClwKQWK3n0hn+lachHOJ9pNNN0apQFzsY10a4v4hXQh0xpieQ\nMA1XLZNjhK80cT8OdV+3Wl3A7ZZJCw+hrR1qLcjZ/CsbnfHRnFXseHJArOYYbrUs1uPhYbuatqFP\nByfSkMq3UIINYkto+87Tx6GkSxfsDbflGD7CtTw/pk4nzITtPIFMFudsukh4Rxz71paTpKwP5jcn\n0qTRy0NORMDgVCqewoJTJgAoxjntTiTu7fWmFxAcnn1q3EPl+X8KZMi4gKqB1Peob/Tv7Us5bfeU\nyOoq4R5nYxqT5I8xieH9J1DTbvyJELRg8ODwa9Ms5mSFV9BWiptbnNVrKdmif7Q1KLg96XIZc5Is\npNL5pqeUrmMtZs0jzV08phchaY00zH1p2ZNxjS1g+LdJOt6U9ssmxjyGp2urDjLlaZzng/wUPDqz\nTSTmWeTrjpVjVk3Rvjr2rnqQ5dDvo1XUd2cTqSNk9OKxXGCeKxZ1DAxHTr2q5C/y8GokUhsz54qu\nuCxzSQjQ0+FZblR2ro4bZYiMVQ0dBb7Qi5x0qzuG5QOh71LYErDufpSeWrHnimIXbjkUjLkH1Hem\ngGxryc+tXI19KYmWegq9YLiLJ7mtqS945cS7QsWehqxA9dEjz4krPSxyZqbFFhGxUm6smjRM55Lk\nHvSvNxXTY57kLT+9MNwKdhXGm5FIbkU7Bca1wMEVhaiuQcVhXWiZ14R6tHGanGBI2OtYkqEHjgVy\ns9ErEeo6UBsHipKEZs5qpPdRxcbhx70NCSuybTNWihc5brW9Fq6vjMnFSdEIdDRi8RRKygZbHFbu\nm6nb3RA3gMegNJhOm0jbXGOoxTuCc1Rz3FyoGKawz9KaAVcZqeMgCmIkB4FaUTbYwB6V00Fuzixb\n0SFMuDU8Mlbs4UPeXHeiOXkUrDuXYnyKk3cVk0ap6HMxxketSMhrcwRC0dMMZFMQ3yzSeVQAeUaz\n9Vj8uPd271nVV4m+GdpnHX67pCeKyLtBtNcR6xlk9RVeWTb3qRnO6trgttyIfm71z7ai8j7/AJmN\nDNqUVa5Yi1AnjynHuBV+11YJhWWXcP8AZNSzqgmaEerSsf3NtIQP4mGKtRavdRgMIpVI9KjU0a7n\nR6T43uYQI7qN2Tpkqciu503VVuQGAYZHQjFVc4alPlZrpKGAznpTwxOc9+lWjIlUACnM4XApiLNk\nnmvnsK0NvpXZRVonmYqV52GsmanhXitTmFkSiJTSAvwrxUxXIrJ7miOfjf1pzNWxkRlqYWpgJupu\n6gQbuahvIxPA6eo4pNXVioS5WmefakGhndH4INZs5DJXA10PaTurmLO21uKpSZqGMoXGnRzBiyjd\n9Kx5rcQS428fSkjanLoaOliHGZFB56VswW+mtPufcBsGOAfmxz+tFkd8HpoaUx09FAtFY8DO71qb\nSms/Nb7RbecG6AEjFLS5c78t+p0djpVs9wsyQiJAdyr1rW+zqjErzSe559Sbk9S3C+MA1bjbgE1S\nMSXzMVG0vNUI2tPKrAuCMnrVzNd0PhR49W/O2xrHmp4TxVMzQshpIzzQBehqesnuaI5VGzT2bitz\nFEbNTC1ADS1JupgG6l3UAc14s04yR/aYRll+8BXCtLncDXFWjys9TCz5oW7GddH5qqNzWDOgQnC8\nVSuo1kHzAGkPYopEY2+RWxV23Vzj5G/Kg3jWaNazhZuqNXS6TaKhB2c0jR1nJWOlhOxRxU4YkCgx\nY0OQatQyDbyaaFYe8uF4NY3iC9ltbVGj43NTIL3h7WzMihjzXVQXYYDdW9Cf2WcOJpfaRZ3g9KsQ\nmupnCLIabGeaAL0LcVY3cVmzRHIxtUhetzEjZqjLUAIWpN1ArhupwagAfDKQ3Q1594v0c2bm6tx+\n5Y8j+6ayrR5onThp8s7dzkZjuqAAmuBnqC7c0iwgtzSA0rWzjfGRW3ZadDu4AoNYo2rfS4v7orSh\n05UA2r0pDbsTm29KRottBNyJ0wpJ9KhD7f6U0ikNWffIFBz60zVUW52ow4UcUN6EPcx44WsbgOmd\nua7TT5Bd24KHnFKnLlZFSN4koluLdueRWvp14swweG9DXoxldHlTjYtzGoo25qzEvwtUxas2jRPQ\n5CNqkLVsYoYzUzdQA3dSFqBBmnqaBhuqhriCXTpVIzxUz+Fl03aSPI9QTypW2/dz0qKNw3SvOPZR\nMqin8VLKRcs3O4Cuk0w/MDjt1NBtHY6O2IIHY1pxgFaETIRwMkjtVSUEk4570MlFW5bap6dKzWm8\n1tqH8aY+hp2FvGoGayNevVt7/ap4xzUvYjqTLtvLPcvJxSaVcyWsxTnFZlnT2t15xHmCtOBYwQy4\nB9q7cPO+jPPxFO2qLEj5HWo42+aus4HpoX4W4FTF+KlotbHII9SFuK0MUNZqiLUDE3UbqBBupwag\nBc1DefPbyD/ZND2KjujyPWlKzuPesRZjHJXms9lMuw3StjnmphKDSLTJ7OfE3JrpbO4GQc9qlnRA\n3LO82k5NbFvdADkjBoCSHyXIIIzgVQvdRigT7wzjgUzO1jHknlvG7qnp61etYFQDIpCZoqVijzXn\n3iC8EmsOuaCGb/heR/s0ijkVv6fbxy3QMg5xmsnuX0Ldzut3+UYTPWk+2GJSe+M1pFtamcldalmx\n1eO4XaThhWnC+TXqR2PHqL3maUJ4qRjxSEjj42qXdxVmaGs1MJoATfSbqBAG5p6mgAzTJTmNvpQU\ntzzHXY83D/U1zF5FhjgV5r3Pa6FMsV5HWnLe7RhqBRdmTwagN2d2K2rPU1C5LAnPrUs6Iysbdrq6\nf3gK0BrUKj/WClY05iM6xLOcQAj3NT29uznfKSzHuadzNu7NSBFjHNSm5VO9IRnajqoWMhTzXFtA\nbvUfMduSeg702Qz0rS7FbTToQFwzjJqaGTFyfK5PQViyzUuFmuIdgGABya5u/vTaN5cnUHFUmLoZ\nzyskwlgJweSK6zQdUEwVJeGr0aUrxPLxEfe0OrhPAqVjxWhznGRtUwatDK4jNxURbmkAm6jNABup\n6tQAFqhupNtu59qUnZFwV5JHnWsHdIx96w5lz15rzT2uhRmt85xWbcxMnUGmZlB0bdxmrNvFIcfM\n350mWjbs7YkDJY/jW5ZWW4jikWkdNp9mqYJFaJdEHHakUULu/VB1rLn1Ld/FgetMGYd/qWSQmSa0\n/AemS32pfa7piLeLkg9z6UmQtz0W7uQ2cZx0A9BVzR7cAea6j2rPqX0L99KRat5A6Dk1wOoKZ52a\nYfMORTYRLujiGWEq6/NWza2yKQVHNdOHerRy4laJo6TTnbbtb8KuM3Fdh5z3OJjbmpt3FaMxAtUZ\nagBN1GaQBzTwaAAms3VbjERUGsa07RsdeFpuUuY4jUjljWTKK4j02RE4IpJYFk6imQkVl0xWarsO\nmAEcUi0bNnZBR0rWtoguMCkUi21wI161mXuocEKaYXMS4u+pY/hVCSWSY4HT0pEmlouiSahdpEBl\nmOceleiwWcNjClvHgJH97Hc1EmVFFi3Czy7mwIl/WtJbjP7uLgd/apQ2VNVvtsBhiPzdK5S4nAuR\nnqOCaTGi9pcytPlU+XpmumtWII44rah8ZjiNIXRuWeNvvViQ/LXpJWPJbu7nCRvVkNxVsxBmqJmo\nEPiXca0YLMuOlJsuKuPlsSi5IrNuG8s4HWs5VEkbwoOTKsk+FJY4rC1K53k1xTk5O7PSpwVNWRzt\n4cms+WpKICtSLTETQj5q0YeBSGiys23pUguGxQMq3E59ayrm4x3yaAKiRtO2WPHcmhruKFxFajzZ\nScA44qRHoXhuMaLpxaUg6hcDLMf4F9KlhuDeXGASIl+8azZslYma68y48m1+7nFW5rtbRNhb5z1p\niMKbUg0zuW4A4rPgb7VdKXOMmpA7HRbMS7nUYiUda0lkQOBngVrS+JGdbWLRt2bAx5BqeQ/LXpnj\nPQ4GJ+ashuK0MhWaoWcA0AaOmASMK7jRNPWYBmHyiuepO2x10qfcv6vYxCzYqoGK4HVYVTJrmb5l\nc6oaM5TUJ8EgGsG4kLNUHT0M64OaqMMikSRsuKbnFMRLG3zVehOaGNE445NNlnVFpDMu6uie9Vo1\n8z5mOAOST2pDK91cNN+5tsrH3PrW54a06KxT7fdrlh/q1Pc+tJ6IUdZGvHPLezMcnBOWbsPap5r3\nylFtbdT1xUWNWzU0/Zbwlgfmx8zGsHWtRHmMqE59aAMyNifvHPc1f0gtPdqkY5JosJHeNci2tktY\neuPnNY+oXWZEVJNrZ9aun8SIq/CzodHuriIokhDIR1ronbKZr0o6o8ipoz//2Q==`;\n\n// data:image/jpeg;base64,\nexport const body = `\n/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAsICAoIBwsKCQoNDAsNERwSEQ8PESIZGhQcKSQrKigk\nJyctMkA3LTA9MCcnOEw5PUNFSElIKzZPVU5GVEBHSEX/2wBDAQwNDREPESESEiFFLicuRUVFRUVF\nRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUX/wAARCASwBLADASIA\nAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAEDAgQFBgf/xABDEAEAAgECBAMECQIDBgUFAQAA\nAQIDBBEFEiExE0FRBiJhcRQjMkJSgZGhsWLBJDNyFSVTY3OSNEPR4fAHFjWCokT/xAAYAQEAAwEA\nAAAAAAAAAAAAAAAAAQIDBP/EACARAQEBAQADAQEBAQEBAAAAAAABAhEDITFBEjJRIhP/2gAMAwEA\nAhEDEQA/APqYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAKNTq8OkxzfNkisQC8eb1XtRNbzXT4q7eU2nu0MntRq/D8StMccvW29ZmdvgjsTyvZjxOLj\n+s8WLxn8TFPXs6Oj9oct7c14rkxz22nrB2I49KOdTjelmszfmpMeUxv/AA28OqwZ4icWWtt/SUi4\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmdo3nsPNe0Pt\nFh09Z0+DNWL7+9O/7A3eJcZppsV5raI27esvH6jX5ddM25p79Ilo59VbUZOe2Tm/PeGvfPfT2iKR\nPLv1+DO678XmW/a97U6TtOyzTbTF538/T9WjTNecm9a7126tqk3rSYxY5ta1plRZqZNXGjyZcPXl\nmZmsx+qjBrsuO16xM7eXRt04JrdTltk5OWJnfaWf0a2lty5MdZnfzSn+WOHiOutFpjHa9e8bQ2fp\n+alYy462pk7zXbuxjPesbRS0f6ZZV1ET1tErzXFLHo+A+1ddZf6NrI8PJHa1vN6iJi0bxMTHwfOa\nzhzd61v1846utwniM6DUdb3nBaNrVmd9vjC/ZVePYirBqMWppz4rxaPgtEAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAItaK1m09ojcHnvarjM8P0vh49+a/eY8ng9D\nh1fGM1rxjtGPfvbzdbjuTJxHX48cTPNltM/KsS9Dw7S49Jp6UpHaGe2vjz1y9J7LYK13vHWe7bj2\nex1tvM80ekuxW3RnW3Vm6P5jRx8H0+OYmMcb+bapo8GKPdpC6bQwtdHU8JpWkdJ/JweL6e23iU67\nd4dubSqyVi9Zi0bwIs68XGp36TtEq7ZJmZmevzdbifCKWtbJinkt6eTgZPFw32t+sRurbWVzxs1y\nRv6T8V1NZNPtfq0seTm+Kevr+SZuxXjvaPiV8N4viycto9HseG6+uu08W6Rkj7UPmFck1tE1nlmP\nLd3eA8V8HVVi1pjq6Ma/pnqce/ERMTETHaUrKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAADW19+TQ5p/p2bLS4v04Zmt5VjeQeJ4bjnLqsupv+Ka1+ERLv4reTmcNxcuC\nvy3l0qdI2hlr66sT02ot0ZV7qqrInruzrVZLGSZ37JjqgYTG0K5lbaFVhDT1Ub456RPweY4hixWi\neSdpjvD1eWejz3FNHWYtkpvFo9EIseb3tS3SerOms22rfpPqZKzvvHSYUz70TExG6Gdbs2rljeJ/\nMx5L0vEzPaelnOi98c9J2bFNTFpit47+a+PVUvx9T9nOIfT+GV5p3yY/ds67wvsXqpxau+G09Lx+\nr3TqrEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADV4ljnLw3U0jvO\nO0fs2lWqyUw6XLkyfYrWZkHldBEV09eveG3Fq1mI3jd4vPrOIaid8G9MP3Y38k6fNrt/rMk9Ou8s\ntfXXn49rGWInuy8SO/k5Gl1E3rG/fzbOe94wTy99mbRvTrMOOvNfJWsesywniukrG/jU6fF43WYN\nTmtEeJtEQ06aSmK2+bNtEd+qfSO17unF9Hmvy1y13XWyVmN4tExLxVK8PmNq5NrT58zawam+m/yc\n0Xj8NpRYSvQZ7xEOdqI3rPozxayNRXe0ct/ON03jmrKB5nV4q1yTO20Obmv4c+cx8HoeI6WZpNoj\nq83niYmYscU0r8aJ6T1n49zeJ+Meqm1drb9J+Kd5p136StGVem9l9TbHxLDFp7W7+sS+q1nesT6w\n+PcAzVjiGHftzQ+v4f8AJpv6On8jH9ZgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAABp8VrW/C9TW0ztOO3b5Nxp8VmI4bn37TWYB8f1HFtTfUfR9FWJmsdZ9I7MtJxDX5s\nd8ta1y0xzteaR2277rcuhycP12SceLxMeWNpjttHwlu8I0mfQ1y+D7k5YmJmY36T36Ka43z/AF1t\ncI1ds+qxVj7/AEej19PCw9HJ4NoK4OIU5Y35YmZdzVTGebVZabx5jJS+Tmns81rNLm1Wrzc9rVw4\nYibbem72mXTTS0w0M3BvEta1bWrM95ie5EanY87wXgNOL6XPfxraXLhra/W28bR/dzYzarBqJxRe\nbzE7Rt5vWU9n8mPHOGmS0Ypnea1naJb+k9ncNLR7u2y/WcxXO4TOoyUrN6zD0FaW5Y3hu49FiwUi\nKxCvLMR0hlW0jn6ukWw3iXjOJzbDlneOj3GaN6zDzfFOH+LE7SRGo83XNSZ2lbG2/WfdlvaT2cy6\nrNFInlrv1mfJ37cK4PwTTxOoidRm2+/2/KFuyMp47XB4LivXiunrH2b2iH2qn2K/J8x4fGDNxTSZ\n9Nh8OviRvTyfT6xtWI+DeXs9MNZubypASqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAOZx6/LoOWPvWiHTcf2hiZ0e8fc2mf1E5+vP/AEeuSd7RC2uKtI6QjHfeINTfwtPf\nJvty9WPfbt/lucP03gxfJf7d/wBoReYpm97zaNeLb4Ims9Nt94auDjem1Wo5PFi1onylS+1o7l8V\nbxvtupjDMdNkYtXS1+Stt+m63xImEJ4xjHER2ZxMUjeUTO3VRmydBbjLJqPi08mbeVOXJPq1sl5Q\nVbkz9+rRy35rxHqzmZlVEe/Ez5LRlW5iyfR6zffaIjq1OSNZps2a21rZInafSPJhxGMl9LStLRWM\nlorM/A4dkrWbYfLZC2W/7K6eubX6b4RzT+W76K8b7G6X62cu3Sten59nsm3j+OXz3/0ANGIAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0OIYfpOHPijvNNo+fdvtXJO18k/\n/OwPFYbz2ls3jx8VqW6xMdWPEdP9D4lkx/dt79flLLHbkxTPwY6nt2512ORTRzE2x4/dpE7cvkme\nE4IrW3hRMxO8THRtU1FKWtvtvK2upx22rzRCtXkqzh2jtF7ZbT122b01ndnpuWuP3Z3+Ky20qDVv\nfauzVy3mejZzNK8dVjqi87KLRLYtXruqvXzkQp7Qoid88R6rcl+WGlW0/Sa22mfhCZOq2x082ix6\njkm822pO8VrPdr4dNObVeDo8XW3uzMbzK+mvxT7szE27cvnu9j7PcNjSaXx8mOIzZevbrEeic5tN\n+SZnpt8J4fHD9HXHO3PPW0x/DeBtJxx29vaAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAKNRim9Z5e89Nl4DzXtVh5babURHrSf7f3ec1+qnDorWrvvt5Pccb0n0zhmWk\nRvevv1+cPE2rGTFNZU26PFfxwa5dVkjelI2772nZnX6bbrEUq3o0d678u8wmuDL2ittvVjXdneeK\ncGv4jpJ6U56+kS7+j118+GLXpakzHaWlp9NNY3tv+bbiYiNoQy1y30uyZJlrWmZnuym6q1iIJnop\nyW2Te8bdWnnypQqzZOadokiIpSZntWN5lrxki19vNRxrUeBwnNNd+fJEY6/OejXLn3Xe/wDp9wyn\nE8uo4lqqxblv7lJ26T6vpD5X7G8QycKzeBMbzMRM1/FH/wA/h9QwZ6ajDXLitvWzRgsAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeL45w+dDrZvWv1OWd4+E+j2jX\n12jx67TWw5Y6T2nzifU+rZ1y9eHwzDYxxEy18+DJodXfT5o96vafWPVbjyxDn1OOzHudbM0rt2UW\niI69mVtRXZq5tREb9VUoy2iIlRbJ0UX1VZ6btTLrI7V6yk62M2oisT1c7JmtkttVMUyZp6x0beDS\nRWOvdKijDimvWd3G9pNRMfRcNfvZOb9Hpb0itJeP47k/3hgjaZnbaP1XxWW3T0movbNS0W645nbf\n0nrMPpXs3xamoxdJiLbe/X1n8Uf3fKsOTw4jbaXo+EarJhtGTHMxeJ6xH7Sti9Zaj6x3HM4NxXFx\nDS1mtoi8dJrv2l011QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAGjxLhODieOIye7kr9m8d4eM4to9RwjPXFa0ZIvG9bR0fQXmPbDFvTTZPOJmEWS/V8bs9R43NxLL\nG8eFbePg1bajU5/s0l1ceKLx1hbjwRE9mOpx0y2uRTSZsm3PMw2aaKtIjo6kYo9EXpET0hVLXxYK\nxC6MZvyx1lFs0RHfaPiCnU12pLyHGNDbUajBekWma2npWN3p8+opa20e9LSyZLxExTlpM+vdOdcZ\na9tPS8MyUvFrzWlI6727u1pYxYrbVmb7x+TQx6au3Nqcl7/0rcmW9axGnwZJj1novmxnZXV0fFp4\nZxLBPgTGK8xzXr5fOH0bFlpmxVyY7Rato3iYfNuG2x56Wrqa8s2jz+7Lu8O12bS6jkwzN6THNNI6\ntvrN68Y4rxlx1vHa0bskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAA4XtTTm0OKfTJ/aXdcL2pyRGjwU362yb7fkJz9eTxxyZJjyltRXzUZK7TFtl9Lbwy06YzrHwa+\nfJFd/wCVt8m0bQ0eS2qzcm+1K/an+zNZFL5M1pjFXeI72ky48eGnPkvNp27+TPU6nHpMfLXaIjpE\nerk5dRMxOfN1mPeisfshW1ne1a1577Y6x5R3U0zze31FOWI6ze0byU098kRlzbxM9qrMlPDpyRMR\nMd5Vt/Ihp5898mWZm1pjftE91uCt7fCI7dWeHDEW3t723l6rslqxWZnasR+SYhFbzhnfxJ2jyeq9\nlcGXWZcmW0zWKxHLaI7794eJx5fpfEKabT8t8l5isddo3l9S4VjrwrRUwzSJt3tav3pdOL6Y6dXD\nj8HFWm+/KsU4NRXPvtWazHquWVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAa+fXYNP9u8b+kdZBsDkZOO135cWOZn4y5Wu4xqctbe9y19Kp4njt6vi+PDm8DFMWybbzPlV\n5PiGtz67UxbNbeKTtWIjaIXYpnwuaftT5tXJT3vmi1pMsrU5qIrG1V1a+5DCa7b9GFbRr5J6Wnbt\nCu+Wmk0m8956z8ZWZNorbfzcbX5rZslazPux3hUt41NTntktObJ13+zX1bek01r4/HzVm0bxPXy/\n+bNfDgjVa2uOY92kdfg6ufJOKvLXtttVVSqbcta2vM7zXtHpLQy5ZtMd+vWd+7Zy3mdJHXra3f0c\nvUarw7zFY5rT2hH1Lavnrgx81p3U49Pk4nE5L35MO/StfNRXR5tXnrS8W67WvfyiPSPi7uLHFK1p\njrtSsbR5Lc4RzsXBaYreP4l45esRD2HD9fnw6evvWvO3Tfr0aGk0U55ra0TFInv6uzgrXFXlx0i0\n77RPlC83Yj+JW7oddqr6vHzTTw9/f6dod+L1t9m0T8pcbFSmPHER3892W0zPuz+jSbVvidkcqmfP\nSel7bekrI4n4dZnPWIrHeYnZee2Wpy8dEaml4npNZblw5qzb8M9JbYgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAABEzFYmZnaI7yCXL1XGa0jJXT0571nbee27DiXEprp8nhbxG20W8\n5cbD0ikfnKO+urTPvjoZdXqctdsmTaPSvRpWmsdZ6yztfaGplvv3lWW1tyRlz1x0vkn7Vo5atTNe\nY0+1o79V2KsZsvX7Ne5mwxnyTNvsx2iGneM/rCdRSuOsTasTt5kRFtpjqmOH4t4nk7estiMNa97R\nHwhna0iuKTEdmGWa4672nZtRele1N59Zlq6vLOSsYorEc07qcW65euzRvtXvPZy52naZ7ujr6fXV\nrWdukREK8+njHgmZmPc67bq6ivVWhxxgxZLztNrT1mZ/SP4VZs0zaOvfp84WUtNsXLvtv3699+rU\nz7+Jtt5qURqMnPpctaR1rMSw4ZoK57eNk6xHaJRh97Ltt7lo5Z+L1HAPZvVauZ2nFTSzMTzeJEz8\nto6xPfvsZntPZ9rXxabmxzefdrv0j1dXh/BcmstW1qxTHHasR3+b0GPhGl+kWmd64dNEVjf73T7X\ny8vy+Ddx6O3iRakxTH5RXrMw1/lX+3Itw2MFIraN48qRHdZi0cUjmmPen9noox1iO0fNzdXEYrTt\nstcmd9aX0bJ+HePmiKTitO8TMLZ1cVjrMfqpz6ys4pjfrPRWZ9rXXptUit6zO+23VyaRHEc05L1/\nw9J9ys/en1ljqdVbwYw452tlnl3jyjzbmmiMeKtYjpEbLeTXPUU8ee/+qjJpsV5rbkrFqzE1tEbT\nDpYNbW21Mnu29fKWna0KbqTdjXXjld0cvQ63ltGHNPSfs2n+HUbS9c2s2UASqAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAOVxPWe99HpP8ArmP4b+r1EabT3yT3iOkesvMVtN7za07zad5l\nXV5GmM9vVfEstvDx0jtaVVMlq+UJ18b5cMRvPeSuK87bUt+i2Z3PtG7zXpjkzXt6R+TXyTMzvM7t\nydHqZ+zhv1+Cv/ZuqvPTHMfOYaTMil1a1K2vHSLTELq2v+KWzThGo84rH5rq8JzedqR+ZeI7WnOS\n34pYTafWXR/2Pln/AMyrKOCWnvmiPyR6O1y9585lhWJvl557Q6eo4T4dYiMvW3b3UanhldHpJtGX\ne09unmjsT7eb1l4trI2t0hsZfrdNO0bzy+nzU20/+NmkzO9esz+TZxWis9dttvPv+Tn21jjaW8zn\n26bTG3mp1M/Wzv3t0jyWXiKZJmsTERaZhXXDbNl8WaztWenxZLstPp5pau8frDtVrNMM5cfTfpMf\n3aunxxbes9d/R09Dp8ebJi09ptFr3jtt2WyrW9wy1Jx132mK+Xq9PotT0iIU19ntLtExa3T47T+q\n6nBaYvsZstZ+cT/LeMnUi0TXffo1s2m8Ws2/OIMWk5Jib5L328rS2t94Sh5TV4ppklpW6PT6rh+P\nNbebTHyas8E081mZy5P2W6OFhjxNTE/hr/LoRO0Kvo9dPqctKzMxEx1la5t3tdnjnMs4noievcrO\nyZjeFF1OSnNV0OG62cn1GWffj7Mz5w05joovzY7xes7TE7w0xrjPeex6Ua+j1UarBFu1o6Wj0lsN\n3JfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACrU5o0+nvlt92P3BxuM6nxNRGCs+7Tv8\n2hToxm1r3m9utrTvMsonqyt7XTmcja0u3O6FMfi5t/u0/lzdJM81p9O3zdvHTwsUR5+bfPqOfX1h\ndqV+3O7bs1+T31oqmI3TEM4rvCdkDGIIhlFd2daboS0NXG2bD6bufxXU1vlmu/u4us/N0+L1tTSx\nkr9qk7w89j1FNZMV3jxLzvaJ8mer+LSOZqK2xZotbvljfr/89U453rXt9lse081xZtNjx7TGKu0t\nDHlrevSevaN5Y6+tJ8c7VRNMt63n3ub+6/R54rERMztDYy4a5omclYmfxKcenrjtHLvtPrCnVmdb\neFe3JXmjy6eS/DrMuLVYsta9Mdt++6qLxO+0dEc8UmInr18iUfReHcXrqccb9Z27Q61Lb13eJ9nc\n1Z35rTvE9avY4bTkpG8xEfB05vYxqybc07R281naGMREdoT5JQqy9mply7Q3bV3iXG1eXw7TWSka\nc258t7+tpT5/BjT7MfHqndz12Z+M4lMMKyziUJJiN1WSu9fku23RaOgKNJqbaTU1t9yelo+D0cTE\nxEx1iXmM1Nt3W4PqvFweDaffx9vjDbGvxz+TP66QDRiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAOJxzU73rp6z296zsZMkYsdr2naKxvLyObNOfNfJbvad1dXkaeOdpvsc2yuZVzfbfqybutwu\ns5s8R92J3dvJb3tnO4HSMegtmt3nfZvYp8SZl0z45NfSK7onH1bNcfRFqnUKJr0Y7dVtq7prjEsK\n0XVpEM6028mW20IHK41aPo3J6zs4ODhdcvPnvExFevNXpMOrxi/PlrTee7PLX6Pwa09uaNlKtHg9\ndM3z5d7ReOu02nu0JzZMfblrv5R5uvrcdImZ26T1mYhxs1Os7RH93PZ7axuafNfLitvbaYU3yZYt\nPXs9NwHhui1HBa5LVicsb81onrEuVqNNSuS8Y67dZ6xPZa59Il9uX41vEitImZme3q2Kxbxora0T\nMd/ROSa4Ztkj7c9OafL5LuGYubmyX3iu/TfbdSfVnpvZLT/XZK233+Mbbva1xRXyiPk8pwbH4N6T\nadq5a71n0tD1WDL4tPe6Xr0tDpz8YVnJHWEXYxbqlBedoef4tW0XraO09HdyztSZcbUz43C+ee9b\nSVMaeOfqq7+jGckQ1Yz7+7v2RN/WXPXZPjci2+2yyJaVMuy+uSJlA2d+pNoVRbeDcSxyTE+TDDlt\npdRXLTynrHrDOyiyZeVFnY9TjvXJjres71tG8MnJ4Nqt4tp7T1jrV1nRL1x2cvABKAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAHJ49qfD09cNZ97JPX5PPw2uI6j6Vrsl/ux7tfk1mWr7dOM8iLdm\nvfebREefRsWldw7SxqNbWbR7lPesrn3Vteo7dYjDpMGCvfbeXQ0uLlxRLRxROfUc34p6fCHYrXlr\nEejqrjY8uzCYW7MZjdVKqK9VlaxCYrsnYExBMRMJRPZA8/xPHtmpP9W2xx76vhWOInvt/C7ike7N\nvwzE9kcapGfhlevTaFbFo8RqJ5vy8/RoW09ek0msxHfp3dzNoLzp4zUmZpMbT8HJyYJi20X2n0lh\nZY1li/RaidBF4w2mK3jrHaFGp1lN+tptPp5IjBkid5mIp16TKu0abBPv33vPlM7z+iPdFNcWXU5I\ntkrNce/b1W5db1nTaf3ax9q0fxDW1ebNk2phty1mOu09VOm8W19orEz23j1TwfSeERFuEYMddptW\nd43dvBn21eKJ75KbW+cf/JcTgMxXTb3nbljz+TpcPmc2uyZO1KRtVtGVdi0bx07qJnllsRO6rNTe\nN4XVamsy8mnvPwc3R2jPwe8TPbdlxXNOPSZfhWWpwO85OFzv57qrODkzeHntSe8Sn6Rv0a3EZ218\n8nXekfr1a0ZLVnqx19dWb6demXybOO7lYMvNMdW9S/VVLo0us7tPHdtUtEwJiZU3jq2Jhham8CVG\nPNODNTJXvWd3qcWSubFXJWd4tG8PK3pPd1OB6veLaa89Y61/u2xfxh5c/rsgNHOAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAANLimq+i6O0xPv392rdeZ4rq/pOqnlnelOkIt5F8Z7Wj27I2I6sb25YY\nV1ImY3dbQ08LRc23vZp2j5OJG+XJWle9p2h6HHtbJXFT7OOIpX+7TxT31j5rycdTh+Dpz+XaG/sw\nw18PHWseULN2trBE9UcrJKBhFU7JAQi0dEomegNDUYovM7x3jb5tO1ZvpbaTLtzRExWfWPJ08kbT\nEx5NXWYYyV5omYtHWJieyeDzuizfRs19Jn6TM7Ru1uMcJxZqTkw+5f4ebqa7SV1MR4tdrx2vEfy1\naxqsNOTLjnLXytVXi3Xj8+nmsxTLM16d5npPyUzpekTtSK+U7vS6vQ/SYmK1vWPS1HOn2dvvvvE/\ntDO5XlcO+LbfHSd/W3o6/BdDOXPTnj3Kz38rS6Wm4FNrRyRzTH3p6RH/AKvR8L4dXSzE3jmtHn5I\nmbfqLV+m4dbLSsZInHjr3iI6zLpYaxS01rHuxHRHiT9mv6s67Vj1aqL6326MrWiYa+/Q54BxPaGe\nXRZpj8MquB4+Xg8zPnB7SX30to379GxpK1xcHiKz5IS8xr8PLPixH2bftLTy05o6dHYyVjLhy0t1\nizjZa3pMVv3iO/qz1G2L+NbSajbNyW7xLsY8kTDz+fJXFqKZN4iZnafi6WHL0iYlStI7OO+7axW2\ncrFl7dW9jvE9ULN+J3ZbdFGOy+AYWpEqN7afNXLj+1Wd23KrJVMvCzseh0+auow1yU7WhY4fCdV4\nOadPefcvPuz6S7jol649Tl4AJVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV581NPhtkvO0R+4NPi2\nr8DB4dJ9+/7Q83Po2NTqLanNbLfvPaPSFDHV66sZ5ET0hRknyW2lTtMyouz0c8usx2n7s7vScKwx\nzc1vu/y85p+maJh6Th+SOWeveXR4/wDLm8v+nX5mUWa9bbrInolmu5jdTNkxYFk2Isr3TuCzeGMz\n+THdEyDDJO9Ja823rt2XWnya946pGvktDXta0ztWu/ybvLE9dkcoOf4GbJPWK1j49VmLh9JtE33v\nMevb9G7WsW8l1ccREISophiJ2jpDYpijbaOjOuOJ8ujOdqxsgVcsUjaETYvbaFFrgu5lVsm0yUtu\nryg43H5m+GIj1XcJzePoL4pnrWGtxmfchr8JvfHS1622if3QljzTTLes+qrNjrkiYtCzPMxnm095\nYZJ6boS5teB49Tqscza97VtvWvlv8V/FOF34RrIxTM2xXjelp/eHoeA6XnzReY3ivX/0dfivDcfE\n9HbDbaLx1pb0lOs+jO7K8Lis3cN+0NKcd9PmthzV5clJ2mF9J9GHHVL108dm1SznYr/Ft0tuhLb8\nmNohFbMhLWy0mJ3rPXvDvcO1karBG8/WV6Wj+7kWrvDDBlvpdRGSnbzj1hpjX4z8mOx6UYYstc2O\nuSk71tG7Ns5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZ2jeXneJ62dVl5KT9VTt8Z9W9xbWclPo+O\nfft9qfSHEU1pv48ftYST23ZTDC/p0YtlVuvVjMbM5+LCZjYGWGdrTPxiHY4ffaf3cjTxz1v6xMS6\nOlty2iXVj/Dk8n+ndrkhnGRo1v8AFdW3RCrZ5uiYsqrboncSu508yjmZRYQt50TfowYTbYGVrKrT\nuTZjvukQnYhMIGVY2ZxPVWyrHVCWzXpVXkt3TE7Va+W4K7X3jv1auTNy3jdba0RZpamfroQN7Hk3\n6wr1GTaN2OOJiu6Mu98NvgDi8Wy74d/yZ8PiPAiO2zU4nb6qIn1bugjfFE/ASp1ke9u15mbbRDZ1\nMb823kx0Ontn1OOkedoJCvT8I03gaKsz9q/WW+isRWsVjtHRKyrhe0XCfpWL6Vgr9fjjrEfeh5fF\nfeH0V5Dj3DPoOo+k4a/U5J6xH3ZZ7z3228evytOk7NvFbo0cdols47bSybt7HbddHVqUs2aW3Qnq\nxVeu8LILR3SlZw3V/R8nhXn6u0/pLuPMXjeHT4Zruf6jLPvR9mZ8/g1xrvpz+TH7HUAaMAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAABRq9VXSYJyW79qx6yvmdo3l5viGs+maqYrO+OnSvx+KLeLZz2te1rZL2v\ned7WneZYWnZl5K72YV1xEyxmeqJljzIEWlVkszvbZp5soN3h2SJz3pP3odCnuWmPRxuERfJrZmtZ\nmtY96fR28kbX3dXj/wAuTyf6bmK+9YX1s0cNtm3Sd4LFY2K23W1s16StiUJW7bp22RW3RluBuruz\nmWEgrmCGWyNkoExKE1QlPmsqRDKeyBjaejWy2W3ttDUyz1QKslvehVqKTNosyyTvELabXptIJpaP\nB39Ia2mz+JGpr51jdZefDx2hzuHZObNq58poJaGtjxJ2+LoaKP8ADRPo5+T3skx5OhpOmC0fBNQ0\n5yTbn+bt8A0u9raiY6RHLVwY62mI6zMvaaHBGn0mPHt1iN5+aYVsACBXqMFNTgviyxvW0bSsAeE1\nmkvw7V2w5Ote9besJx2er4rw2nEdNNekZa9aW9JeQjnxZLYskTW9Z2mJY7zz26fHrrdpbZsY7NGt\nmxjvso1b9NmUwpx33XRO4K7VUTE1nmrvEx1bVo2VWiJE/XY4frY1WPlt0y17x6/FuPM0m+HJGTHO\n1qu9pNVXVYt46Xj7VfRtnXXL5MfzexsALsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHM4jxOMFJphmJv529Dq\nZLfjDjPEIx450+K3v2+1MeUOHSOWFc3nJkmZnf4yujpVlqunOeFpV2nctLCZUXRM7MJtsWlRkv3Q\nky5NmpWt9RnrixVm17TtEQnJabXisRMzPSIew9n+CRoccajURvqLx5/chfOest642OGcIpoOG2w7\nROW9d72+LQvXevyejcPUU5M+SvpLeOataraw2a0dLbLqTtK1G3Es4lVWWUSoldFtmcXUbpidgXzK\nGEW3TuCUSncnsDFMMLSms9EC6J6FpVzbZE5ALy0809ZbFr9GtfrEoFMzuuwz0Ueey3HbaBLDXe7i\ntMOfwWnP9I+NZbuttvhs1uBRtXPb4SDm3iIvf57N7Dbl0VrS5+XrltEd+Z1Jx7cNms9N4TURRw3T\n+PrcO3WszEvZOD7P6aYiMlvu16S7y1QAIAABxOPcLnUY/pWCv1tI96I+9DtgmXl68Biy7/NtUu3+\nO8HnFa2s0tfd75KR5fFyMWTdhrPHVnX9R0cd21S3Rzsdm1iuqs256wrmGcT0RYSx5d047X02SMmO\nesd49YRE9WcdSXhZ2O1p89NRji9J+cei1xMc3wXi+KZj1j1dTTaqmor06WjvWW+ddcu8XK8BZmAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAMMmWmKu952UZ9XFZmuP3revlDTtzWnmvO8q3XGmfHb9ZanV3yxtWeWn7y4es\nvPNtDqZJ6Ts5mppvdl/XXRMyfGvSNlu/RVvtOzLfoipLT1VTKbSpvfogRkvtDVyZOhkyvQcA4Dzz\nXV6yvTvTHMfvK+c9U3rkW+zvA/D21urr789cdZ8vi9KDb45rejl8Rry6iJ/FV1HP4vXbBTJEfYt1\n+UpiHM295bXsqrO9l8QkZ0lZEqqLeyBZHZLGvZkhIndADKJ3TMoqWQMZ6pjsxll2jsCLSrmU2lFY\n36gieyu0LJk3jbsga0wdqzK20QpyztQGprL/AFMrOE05NLkt6qdVWZxNrSe5o9vWBLiUjnzXn0vL\nq555dHt8HOwV928/1z/LpzXxbYccRvzTB+jucOwxh0dI22mY3ltIrHLWIjyjZKyoAAAAACJiJjaY\n3iXleM8InR5J1GniZw2n3oj7s/8Ao9Wi9a3rNbRE1mNpifNFnVs65XhcWTdt47bnFuF24dm8TFEz\np7T0/pn0a+HJux1OOrOux08d1ndqY7tillVkzExLOk7yd4YxGwluViJhE45raL0na0dtlWO0+bZr\n1TKi+2zptZGTamT3b/tLacvJjiY3XaTWdYxZZ6/dtPm1zrv1z78fPcbwC7EAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhkyV\nxUm152iAZWtFazNp2iGhm1Vss8uP3aevnKrNntqLdelI7VRHRnrX/HRjx/tZREVjZXeybW6KbWZt\npCZ6S08tN7Nmbb7zCrJtyoS5145bSx5mWafelr3tsKmS/o08uXyhlly7RPV2+AcBnPNdZrK+53pS\nfP4ytnPVda4y4BwHxOXV6uvu96Unz+MvVxG0bQRG0bR2G0nHLb2gCUDX12LxtFmpHeazt82wT1gH\nmMN4tWs+rcr2aEV8DU5sM/cvO3yb+O0csLUTSdrLphRE8tlkZI7Atr2ZMazDJVKTYSCawi7Ksq7z\n1QERvLK3ZGPrKbyCrbdnMcsbeaa18/RhvvM7oGEwTG0JmYYTIML22a2e28xELM19oURPNO4lOem+\nn3ZY5+prVnMc2GYU4/L4A0a15cNf6rz/AC6fC6+NxCPOuOu/5tHJTbHj+F5/l1+BYumXJMd9o3/d\nMRXYASgAAAAAAABhlxUz4rY8lYtS0bTEvH8R4ffhmo6bzhtPu29Pg9mq1Gnx6rDbFmrzVsizq2df\nzXkMWTeIbNL7tbXaHLwzUctvexWn3bmPL8WFnHVL326VZ91MfFVjvvVlz79kLrcf2m7j7bNHH3bl\nJ2SirLQoy4t1++7G0dBC/RanxI8PJPv18/WG241+alovSdrV6w6mDNGfFF4/OPSW2b1zeTPL1aAs\nzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAVZ9RXBTe3WZ7R6iZOpzZq4ac1p+UermZMl89+a/byj0Ra9815ted59PQ32hlrXXRjH\nDpCLX6ML5NlNsm/ZRqstfdXzbsZt06sLZNvNB1Za8RDWyZdo7q8udq5Mu/mIMt4md2lmy7JzZuWJ\ndHgfBL8RvGo1MTXTxPSPx/8AstJ1XWpIs4BwSdbeNVqq/URPu0n73/s9hEREbRG0QUpWlYrWIisR\ntER5JbSccur2gCUAAAAPM8Sry8Uyz67fwuxbzVPGsE49XGbvF42V4M0TEL33ERnktsxpk3sumK2j\nadmFdPFZ33VS2Mdui2J3UU6LYlFSsN2O5NkCyJ6K7T1TEsbAsxdpReerKkTFGMxvYEz0rsqtbbpC\nb2VT1QEzuwtbaGUxspuJU3neWdKoiu8rq12gCI92YatLcublnzbEz1aOptyZqTuDHLfxN6R0+t5X\nqdJhjBp6UiPLeXl9NSMnEKxHa1+bb8nrlvxUAAAAAAAAAAABTqtNj1eC2LLXeto/R43VabJw/VTh\nydY+7b1h7ho8V4dXiGlmvbJXrS3xRZ1fGv5rzeHN02bEW3cys3xZJx5ImtqztMS3MeTeGFjqlb2O\n8btql3NpbZtYsnSBLeiWfdTjtutid+ghherHS5p0+f3vsX6T8Fkw181d4lMvEWdnHaGnw/UeNh5L\nT7+PpPxbjdyWcvAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAo1Oprgr63ntAmTqdRqK4K9etp7Q5d7Wy2m953lNrWyWm953mVd77R0\nZa1104xxlN9lV8qnJl2a9s3xUXX2ybsJyRDWtl3YWydEC+2VRkzeW6q+T4tbJm+KRdfK1cmWZnlr\nvNp7RC/R6HU8SycmCk7ed57Q9ZwvgOn4fEXtHi5/O9o7fJaZ6z1uRyOEezVstq6jiEbV71xevzer\nrWtKxWsRFY6REeSRrJxz22gCUAAAAAANbX6aNVpL0npMRvWfSXlKamsRMVvXm+EvZXjmpaPWHzfL\noNRjzXicfWJ8phfPxFejx72x7xMzK+sXiNoiXlq+Pi6fWV/VfTNqfLJl/WTg9Pji8R70LqvMV1Gq\nj/zcv6yz+lanzzZP1lWpelTET6S81Gp1P/Gyf90s412rjtnyfqql6asREdWM9+jz9eJ6yP8Az7uh\nodZqMt458tpB1JvEViI3/RhzRt13/R1MNaziiZiJn5K9ZNceKZiIiQcu/WekT+iYrWI3lzdTrs+8\n8uW0fJzcur1Np/zsn6g79phVaIeetqNR/wAXJ/3SwnUaj/i5P+6UD0ldonum161h5mNRqP8Ai5P1\nlNtRqJjacuT9Qd22WN5aGeZyZd/KHJy59RHbLf8AVq31Gp/4uT9ZEvS8Lr/vSs2npzRtL1z53wK+\noza/HW2XJNd99pmX0Rb8VAAAAAAAAAAAAAAcHj/C5yV+l4I9+v24jzj1cLFk8nu5jeNpeW41wmdL\nknU6ev1Vp96sfdn/ANFdTrXG+eq1q5F2LLtbZoY8m8d11bbSydErsYsm+zZrO/zcnBm226uhiyRK\nEtrvCrJDOJTeu8A1MWX6Lqq5N/dnpb5O5ExMbx2cPNTeJb/DM/iYPDtPvY+nzhri/jDy5/W6AuwA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA;;;AACA;;;AACA;;;AACA;;;AACA;;;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AANA;AACA;AACA;AAEA;AACA;AACA;AAGO,MAAM,YAAU;IACrB,MAAoB;IACpB,aAAyB;IACzB,aAAyB;IACzB,eAA6B;IAC7B,kBAAmC;IACnC,oBAAoB;IACpB,sBAAsB;IACtB,qBAAqB;;;;;ACxCvB;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAoB;AAKb,gCAAwB;AAAA,IAI7B,YAAY,WAAW,gBAAgB,WAAW,SAAQ;AACxD,WAAK,eAAe,IAAiB,SAAS,WAAW,gBAAgB;AACzE,WAAK,SAAS;AAAA;AAAA,UAGV,cAAc,OAAO,SAAQ;AACjC,YAAM,cAAc,MAAM,KAAK,aAAa,QAAQ,OAAO;AAC3D,YAAM,UAAqB;AAC3B,iBAAW,cAAe,eAAe,IAAK;AAC5C,YAAI,WAAW;AAAoB;AACnC,cAAM,OAAO,WAAW,SAAS,WAAW,OAAO,cAAc;AACjE,cAAM,UAAU,WAAW;AAC3B,cAAM,eAAc;AACpB,YAAI,QAAQ,KAAK,SAAS,GAAG;AAC3B,qBAAW,OAAO,OAAO,KAAY;AAAmB,yBAAY,OAAO,AAAO,iBAAiB,KAAK,IAAI,CAAC,UAAU,KAAK;AAAA;AAE9H,cAAM,SAAU,WAAW,MAAO,CAAE,SAAS,WAAW,IAAI,YAAY,aAAa,WAAW,IAAI,YAAa;AACjH,cAAM,OAAM,WAAW,MAAM;AAAA,UAC3B,KAAK,IAAI,GAAG,WAAW,IAAI,WAAW;AAAA,UACtC,KAAK,IAAI,GAAG,WAAW,IAAI,WAAW;AAAA,UACtC,KAAK,IAAI,MAAM,MAAM,IAAI,WAAW,IAAI,SAAS,MAAM,WAAW,IAAI,WAAW;AAAA,UACjF,KAAK,IAAI,MAAM,MAAM,IAAI,WAAW,IAAI,SAAS,MAAM,WAAW,IAAI,WAAW;AAAA,YAC/E;AACJ,gBAAQ,KAAK;AAAA,UACX,YAAY,WAAW,kBAAkB,WAAW,iBAAiB;AAAA,UACrE,eAAe,WAAW;AAAA,UAC1B,gBAAgB,WAAW;AAAA,UAC3B;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO,WAAW,QAAQ,AAAG,WAAM,WAAW,SAAS;AAAA;AAEzD,YAAI,WAAW;AAAQ,qBAAW,OAAO;AACzC,YAAI,WAAW;AAAO,qBAAW,MAAM;AAAA;AAEzC,aAAO;AAAA;AAAA;AAIX,MAAI,aAAa,CAAC,MAAM,MAAM;AAC9B,uBAA2B,SAAQ;AAEjC,iBAAa,MAAM,QAAQ,IAAI;AAAA,MAC5B,CAAC,WAAW,MAAM,QAAO,KAAK,UAAW,AAAU,KAAK,WAAU;AAAA,MAClE,CAAC,WAAW,MAAM,QAAO,KAAK,KAAK,UAAW,AAAG,oBAAe,QAAO,KAAK,KAAK,WAAW,CAAE,WAAW,QAAO,KAAK,KAAK,UAAU,SAAS,iBAAkB;AAAA,MAC/J,CAAC,WAAW,MAAM,QAAO,KAAK,KAAK,UAAW,AAAG,oBAAe,QAAO,KAAK,KAAK,WAAW,CAAE,WAAW,QAAO,KAAK,KAAK,UAAU,SAAS,iBAAkB;AAAA;AAElK,UAAM,WAAW,IAAI,kBAAkB,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI;AACpF,QAAI,QAAO,KAAK,KAAK,WAAW,QAAO;AAAO,UAAI,eAAe,QAAO,KAAK,KAAK,UAAU,MAAM,YAAY;AAC9G,QAAI,QAAO,KAAK,KAAK,WAAW,QAAO;AAAO,UAAI,eAAe,QAAO,KAAK,KAAK,UAAU,MAAM,YAAY;AAC9G,WAAO;AAAA;AAGT,UAAQ,gBAAuB;AAAA;;;ACjE/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,aAAY;AAAA,IACvB;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAY;AAAA,IAAW;AAAA,IAAY;AAAA,IACtD;AAAA,IAAiB;AAAA,IAAa;AAAA,IAAc;AAAA,IAAa;AAAA,IACzD;AAAA,IAAW;AAAA,IAAY;AAAA,IAAY;AAAA,IAAa;AAAA,IAAa;AAAA;AAGxD,MAAM,iBAAgB,QAAQ,UAAU;AAExC,MAAM,WAAU,QAAQ,UAAU,OAAO,CAAC,QAAQ,WAAW,MAAM;AACxE,WAAO,aAAa;AACpB,WAAO;AAAA,KACN;AAEH,MAAM,qBAAqB;AAAA,IACzB,CAAC,WAAW;AAAA,IAAiB,CAAC,aAAa;AAAA,IAC3C,CAAC,aAAa;AAAA,IAAc,CAAC,WAAW;AAAA,IACxC,CAAC,YAAY;AAAA,IAAc,CAAC,YAAY;AAAA,IACxC,CAAC,cAAc;AAAA,IAAkB,CAAC,cAAc;AAAA,IAChD,CAAC,YAAY;AAAA,IAAc,CAAC,aAAa;AAAA,IACzC,CAAC,gBAAgB;AAAA,IAAkB,CAAC,WAAW;AAAA;AAE1C,MAAM,uBAAuB,mBAAmB,IAAI,CAAC,CAAC,YAAY,gBAAiB,CAAC,SAAQ,aAAa,SAAQ;AAEjH,MAAM,aAAY;AAAA,IACvB,CAAC,QAAQ;AAAA,IAAY,CAAC,WAAW;AAAA,IAAY,CAAC,QAAQ;AAAA,IACtD,CAAC,YAAY;AAAA,IAAa,CAAC,QAAQ;AAAA,IACnC,CAAC,gBAAgB;AAAA,IAAc,CAAC,aAAa;AAAA,IAC7C,CAAC,gBAAgB;AAAA,IAAY,CAAC,WAAW;AAAA,IACzC,CAAC,YAAY;AAAA,IAAc,CAAC,QAAQ;AAAA,IACpC,CAAC,iBAAiB;AAAA,IAAe,CAAC,cAAc;AAAA,IAChD,CAAC,iBAAiB;AAAA,IAAa,CAAC,YAAY;AAAA,IAC5C,CAAC,aAAa;AAAA;AAGT,MAAM,eAAe;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;;;ACzDK,gBAAgB,KAAK;AAC1B,QAAM,KAAK,IAAI;AACf,QAAM,KAAK,GAAG,GAAG,WAAW,WAAW,SAAS,GAAG,QAAQ,GAAG,aAAa,WAAW,SAAS,GAAG,QAAQ,GAAG,aAAa,WAAW,SAAS,GAAG,QAAQ,GAAG,kBAAkB,WAAW,SAAS,GAAG;AAErM,MAAI;AAAK,YAAQ,IAAI,IAAI,UAAU,GAAG;AAAA;;;ACLjC,gBAAgB;AACrB,MAAI;AACJ,MAAI;AACJ,MAAI,OAAO,cAAc,aAAa;AACpC,UAAM,MAAM,UAAU,UAAU,MAAM;AACtC,QAAI,OAAO,IAAI,IAAI;AAEjB,iBAAW,IAAI,GAAG,MAAM,iBAAiB,GAAG,QAAQ,UAAU;AAC9D,cAAQ,UAAU,UAAU,QAAQ,IAAI,IAAI;AAC5C,UAAI,SAAS;AAAI,gBAAQ,MAAM,QAAQ,IAAI,IAAI;AAC/C,cAAQ,MAAM,QAAQ,OAAO;AAAA;AAAA,aAEtB,OAAO,YAAY,aAAa;AACzC,eAAW,GAAG,QAAQ,YAAY,QAAQ;AAC1C,YAAQ,UAAU,QAAQ;AAAA;AAE5B,SAAO,CAAE,UAAU;AAAA;;;ACdrB,WAAoB;;;ACDpB,SAAoB;AAEb,IAAM,SAAS;AAAA,EACpB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,IACT,OAAO;AAAA,IACP,WAAW;AAAA,IACX,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,IACvB,OAAO;AAAA,IACP,SAAS;AAAA,IACT,8BAA8B;AAAA,IAC9B,gBAAgB;AAAA;AAAA;AAIb,oBAAoB;AACzB,MAAI,CAAC,AAAG,eAAY,OAAO,OAAO;AAChC,QAAI,yBAAyB,OAAO;AACpC,QAAI;AAEF,aAAO,SAAU,OAAO,oBAAoB,cAAe,IAAI,gBAAgB,OAAO,OAAO,OAAO,UAAU,SAAS,cAAc;AAAA,aAC9H,KAAP;AACA,UAAI,gCAAgC;AACpC;AAAA;AAEF,QAAI;AAEF,aAAO,KAAK,OAAO,OAAO,WAAW,UAAU,OAAO;AAAA,aAC/C,KAAP;AACA,UAAI,qCAAqC;AACzC;AAAA;AAEF,QAAI;AACF,MAAG,mBAAgB,GAAG,OAAO;AAAA,aACtB,KAAP;AACA,UAAI,qCAAqC;AACzC;AAAA;AAEF,QAAI;AACF,YAAM,MAAM,IAAO,gBAAa,OAAO;AACvC,MAAG,mBAAgB,OAAO,MAAM,MAAM,IAAO,oBAAiB,MAAM,OAAO;AAAA,aACpE,KAAP;AACA,UAAI,yCAAyC;AAC7C;AAAA;AAEF,QAAI;AACF,YAAM,UAAU,AAAG,wBAAqB;AACxC,cAAQ,QAAQ,CAAC,iBAAiB;AAChC,cAAM,kBAAkB,IAAK,cAAc,aAAa,OAAO;AAC/D,QAAG,kBAAe;AAAA;AAAA,aAEb,KAAP;AACA,UAAI,oDAAoD;AACxD;AAAA;AAEF,QAAI;AACF,MAAG,OAAI,IAAI,iBAAiB;AAAA,aAKrB,KAAP;AACA,UAAI,0CAA0C;AAC9C;AAAA;AAEF,QAAI,uBAAuB,OAAO;AAAA;AAAA;;;ACvEtC,UAAoB;AAEpB,IAAM,gBAAgB;AAEtB,yBAAyB,WAAW;AAClC,QAAM,OAAO,CAAE,SAAS,CAAC,YAAY,IAAI,YAAY,IAAI,SAAS,CAAC,GAAG;AACtE,QAAM,WAAmC;AACzC,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,QAAQ,KAAK;AAC5C,UAAM,SAAS,KAAK,QAAQ;AAC5B,UAAM,WAAW,KAAK,MAAO,aAAY,SAAS,KAAK;AACvD,UAAM,WAAW,KAAK,MAAO,aAAY,SAAS,KAAK;AACvD,UAAM,aAAa,KAAK,QAAQ;AAChC,aAAS,QAAQ,GAAG,QAAQ,UAAU,SAAS;AAC7C,YAAM,UAAU,SAAU,SAAQ;AAClC,eAAS,QAAQ,GAAG,QAAQ,UAAU,SAAS;AAC7C,cAAM,UAAU,SAAU,SAAQ;AAClC,iBAAS,IAAI,GAAG,IAAI,YAAY,KAAK;AACnC,mBAAQ,KAAK,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA;AAK/B,SAAO;AAAA;AAST,IAAM,YAAY,CAAC,mBAAoB;AAAA,EACrC;AAAA,EACA,YAAY,AAAG,UAAM,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI;AAAA,EAClD,UAAU,AAAG,UAAM,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI;AAAA;AAGlD,sBAAsB,YAAY,UAAS,WAAW;AACpD,QAAM,YAAY,AAAG,UAAM,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI;AACpD,QAAM,UAAU,AAAG,QAAI,WAAW;AAClC,QAAM,WAAW,AAAG,UAAM,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI;AACnD,QAAM,qBAAqB,AAAG,QAAI,UAAU;AAC5C,QAAM,oBAAoB,AAAG,QAAI,SAAS;AAC1C,QAAM,cAAc,AAAG,QAAI,oBAAoB;AAC/C,QAAM,SAAS,AAAG,QAAI,mBAAmB;AACzC,QAAM,OAAO,AAAG,QAAI,mBAAmB;AACvC,QAAM,kBAAkB,AAAG,QAAI,QAAQ;AACvC,QAAM,gBAAgB,AAAG,QAAI,MAAM;AACnC,QAAM,aAAa;AACnB,SAAO,AAAG,aAAS,CAAC,iBAAiB,gBAAgB;AAAA;AAGhD,2BAAqB;AAAA,EAU1B,YAAY,QAAO,SAAQ;AACzB,SAAK,iBAAiB;AACtB,SAAK,QAAQ,OAAM,OAAO,GAAG,MAAM;AACnC,SAAK,SAAS,OAAM,OAAO,GAAG,MAAM;AACpC,SAAK,cAAc,gBAAgB,OAAM,OAAO,GAAG,MAAM;AACzD,SAAK,UAAU,AAAG,aAAS,KAAK;AAChC,SAAK,YAAY,AAAG,aAAS,CAAC,KAAK,OAAO,KAAK;AAC/C,SAAK,SAAS;AACd,SAAK,aAAa;AAAA;AAAA,QAGd,iBAAiB,YAAY;AAEjC,QAAK,CAAC,cAAgB,WAAW,sBAAwB,WAAW,MAAM,WAAW,KAAO,WAAW,MAAM,KAAK,KAAO,WAAW,MAAM,KAAK;AAAI,aAAO;AAC1J,UAAM,CAAC,OAAO,OAAO,UAAU,AAAG,SAAK,MAAM;AAC3C,YAAM,eAAe,WAAW,eAAe,CAAC,KAAK,OAAO,KAAK;AAEjE,YAAM,kBAAkB,aAAa,IAAI,OAAO,IAAI;AACpD,YAAM,oBAAoB,KAAK,eAAe,QAAQ;AACtD,UAAI;AAEJ,UAAI,MAAM,QAAQ,oBAAoB;AACpC,cAAM,SAAS,kBAAkB,KAAK,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE;AAC3D,cAAM,YAAY,AAAG,WAAO,CAAC,OAAO,IAAI,OAAO,KAAK;AACpD,cAAM,YAAY,AAAG,WAAO,CAAC,OAAO,IAAI,OAAO,KAAK;AACpD,cAAM,UAAS,AAAG,WAAO,CAAC,WAAW,YAAY;AACjD,mBAAW,QAAO,QAAQ;AAAA,aACrB;AACL,mBAAW,kBAAkB;AAAA;AAE/B,YAAM,WAAW,aAAa,UAAU,KAAK,SAAS,KAAK;AAC3D,YAAM,SAAS,AAAG,UAAM,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI;AAC/C,YAAM,YAAY,AAAG,YAAQ,QAAQ;AACrC,aAAO,CAAC,UAAU,UAAU;AAAA;AAE9B,UAAM,mBAAmB,MAAM,AAAG,UAAM,uBAAuB,OAAO,QAAQ,KAAK,OAAO,KAAK,SAAS,UAAU,KAAK,OAAO,KAAK,SAAS,cAAc,KAAK,OAAO,KAAK,SAAS;AACpL,UAAM,aAAa,iBAAiB;AACpC,qBAAiB;AACjB,UAAM,mBAAmB,WAAW,IAAI,CAAC,aAAa,AAAG,UAAM,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG;AACzF,UAAM,gBAAgB,iBAAiB,IAAI,CAAC,gBAAgB;AAC1D,YAAM,OAAO,YAAY;AACzB,kBAAY;AACZ,aAAO;AAAA;AAGT,UAAM,YAAY,OAAO;AACzB,UAAM,iBAAuF;AAC7F,aAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;AAC7C,YAAM,WAAW,WAAW;AAC5B,YAAM,aAAa,UAAU;AAC7B,UAAI,aAAa,KAAK,OAAO,KAAK,SAAS,eAAe;AACxD,cAAM,OAAM,UAAU,cAAc;AACpC,cAAM,SAAS,KAAK,YAAY;AAChC,cAAM,YAAY,AAAG,SAAK,MAAM,AAAG,UAAM,OAAO,CAAC,UAAU,gBAAgB,IAAI,CAAC,GAAG,KAAK,UAAU,QAAQ,CAAC,eAAe;AAC1H,uBAAe,KAAK,CAAE,WAAK,WAAW,QAAQ;AAAA;AAAA;AAGlD,UAAM;AACN,UAAM;AACN,WAAO;AACP,WAAO;AAAA,MACL,OAAO;AAAA,MACP,aAAa,CAAC,WAAW,MAAM,KAAK,KAAK,OAAO,WAAW,MAAM,KAAK,KAAK;AAAA;AAAA;AAAA;AAKjF,oBAA2B,SAAQ;AACjC,QAAM,YAAY,MAAM,AAAG,mBAAe,QAAO,KAAK,SAAS,WAAW,CAAE,WAAW,QAAO,KAAK,SAAS,UAAU,SAAS;AAC/H,QAAM,SAAQ,IAAI,eAAe,WAAW;AAC5C,MAAI,QAAO;AAAO,QAAI,eAAe,QAAO,KAAK,SAAS,UAAU,MAAM,YAAY;AACtF,SAAO;AAAA;;;ACrIT,UAAoB;;;ACDpB,UAAoB;AAEb,6BAA6B,MAAK,QAAQ;AAC/C,QAAM,aAAa,CAAC,KAAI,WAAW,KAAK,OAAO,IAAI,KAAI,WAAW,KAAK,OAAO;AAC9E,QAAM,WAAW,CAAC,KAAI,SAAS,KAAK,OAAO,IAAI,KAAI,SAAS,KAAK,OAAO;AACxE,SAAO,CAAE,YAAY;AAAA;AAGhB,oBAAoB,MAAK;AAC9B,SAAO;AAAA,IACL,KAAK,IAAI,KAAI,SAAS,KAAK,KAAI,WAAW;AAAA,IAC1C,KAAK,IAAI,KAAI,SAAS,KAAK,KAAI,WAAW;AAAA;AAAA;AAIvC,sBAAsB,MAAK;AAChC,SAAO;AAAA,IACL,KAAI,WAAW,KAAM,MAAI,SAAS,KAAK,KAAI,WAAW,MAAM;AAAA,IAC5D,KAAI,WAAW,KAAM,MAAI,SAAS,KAAK,KAAI,WAAW,MAAM;AAAA;AAAA;AAIzD,kCAAkC,MAAK,SAAO,UAAU;AAC7D,QAAM,IAAI,QAAM,MAAM;AACtB,QAAM,IAAI,QAAM,MAAM;AACtB,QAAM,QAAQ,CAAC;AAAA,IACb,KAAI,WAAW,KAAK;AAAA,IAAG,KAAI,WAAW,KAAK;AAAA,IAAG,KAAI,SAAS,KAAK;AAAA,IAChE,KAAI,SAAS,KAAK;AAAA;AAEpB,SAAO,AAAG,UAAM,cAAc,SAAO,OAAO,CAAC,IAAI;AAAA;AAG5C,oBAAoB,MAAK,SAAS,KAAK;AAC5C,QAAM,SAAS,aAAa;AAC5B,QAAM,OAAO,WAAW;AACxB,QAAM,cAAc,CAAC,SAAS,KAAK,KAAK,GAAG,SAAS,KAAK,KAAK;AAC9D,QAAM,aAAa,CAAC,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,YAAY;AACxE,QAAM,WAAW,CAAC,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,YAAY;AACtE,SAAO,CAAE,YAAY,UAAU,WAAW,KAAI;AAAA;AAGzC,qBAAqB,MAAK;AAC/B,QAAM,UAAU,aAAa;AAC7B,QAAM,OAAO,WAAW;AACxB,QAAM,UAAU,KAAK,IAAI,GAAG;AAC5B,QAAM,WAAW,UAAU;AAC3B,QAAM,aAAa,CAAC,QAAQ,KAAK,UAAU,QAAQ,KAAK;AACxD,QAAM,WAAW,CAAC,QAAQ,KAAK,UAAU,QAAQ,KAAK;AACtD,SAAO,CAAE,YAAY,UAAU,WAAW,KAAI;AAAA;;;AChDzC,IAAM,kBAAkB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG;AAKtD,0BAA0B,OAAO;AACtC,SAAO,QAAQ,IAAI,KAAK,KAAK,KAAK,MAAO,SAAQ,KAAK,MAAO,KAAI,KAAK;AAAA;AAQjE,yBAAyB,QAAQ,QAAQ;AAC9C,QAAM,UAAU,KAAK,KAAK,IAAI,KAAK,MAAM,CAAE,QAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO;AACtF,SAAO,iBAAiB;AAAA;AAOnB,gCAAgC,GAAG,GAAG;AAC3C,SAAO,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG;AAAA;AAGhC,aAAa,IAAI,IAAI;AAC1B,MAAI,UAAU;AACd,WAAS,IAAI,GAAG,IAAI,GAAG,QAAQ,KAAK;AAClC,eAAW,GAAG,KAAK,GAAG;AAAA;AAExB,SAAO;AAAA;AAGF,4BAA4B,KAAK,aAAa;AACnD,QAAM,SAAwB;AAC9B,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,WAAO,KAAK,IAAI,GAAG;AAAA;AAErB,SAAO;AAAA;AAGF,mCAAmC,MAAM,MAAM;AACpD,QAAM,UAA2B;AACjC,QAAM,OAAO,KAAK;AAClB,WAAS,MAAM,GAAG,MAAM,MAAM,OAAO;AACnC,YAAQ,KAAK;AACb,aAAS,MAAM,GAAG,MAAM,MAAM,OAAO;AACnC,cAAQ,KAAK,KAAK,IAAI,KAAK,MAAM,mBAAmB,MAAM;AAAA;AAAA;AAG9D,SAAO;AAAA;AAGF,6BAA6B,UAAU,QAAQ;AACpD,QAAM,OAAO,KAAK,IAAI;AACtB,QAAM,OAAO,KAAK,IAAI;AACtB,QAAM,iBAAiB,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,GAAG,GAAG;AAClE,QAAM,oBAAoB,uBAAuB,OAAO,IAAI,OAAO;AACnE,QAAM,2BAA2B,0BAA0B,mBAAmB;AAC9E,QAAM,4BAA4B,uBAAuB,CAAC,OAAO,IAAI,CAAC,OAAO;AAC7E,SAAO,0BAA0B,0BAA0B;AAAA;AAGtD,+BAA+B,QAAQ;AAC5C,QAAM,oBAAoB,CAAC,CAAC,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,OAAO,GAAG;AAClF,QAAM,uBAAuB,CAAC,OAAO,GAAG,IAAI,OAAO,GAAG;AACtD,QAAM,sBAAsB;AAAA,IAC1B,CAAC,IAAI,kBAAkB,IAAI;AAAA,IAC3B,CAAC,IAAI,kBAAkB,IAAI;AAAA;AAE7B,SAAO;AAAA,IACL,kBAAkB,GAAG,OAAO,oBAAoB;AAAA,IAChD,kBAAkB,GAAG,OAAO,oBAAoB;AAAA,IAChD,CAAC,GAAG,GAAG;AAAA;AAAA;AAIJ,qBAAqB,uBAAuB,gBAAgB;AACjE,SAAO;AAAA,IACL,IAAI,uBAAuB,eAAe;AAAA,IAC1C,IAAI,uBAAuB,eAAe;AAAA;AAAA;;;AClFvC,IAAM,mBAAmB;AAAA,EAC9B,YAAY;AAAA,IACV;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACtD;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACvD;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA;AAAA,EAEpD,gBAAgB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,KAAK,KAAK,KAAK,KAAK;AAAA,EAC7D,gBAAgB,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK;AAAA,EAC3D,gBAAgB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK;AAAA,EAC9D,gBAAgB,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK;AAAA,EAC9D,gBAAgB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC/C,gBAAgB,CAAC,IAAI,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACtD,gBAAgB,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EAC1C,gBAAgB,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK;AAAA,EACpD,gBAAgB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC/C,gBAAgB,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACxD,gBAAgB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACzD,mBAAmB,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI;AAAA,EACnD,mBAAmB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI;AAAA,EACzC,cAAc,CAAC,KAAK,KAAK,KAAK,KAAK;AAAA,EACnC,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC9C,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACxD,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC9C,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACxD,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC9C,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACxD,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACxD,kBAAkB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACtD,kBAAkB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC5C,aAAa,CAAC,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,mBAAmB,CAAC;AAAA,EACpB,SAAS,CAAC;AAAA,EACV,YAAY,CAAC;AAAA,EACb,iBAAiB,CAAC;AAAA,EAClB,gBAAgB,CAAC;AAAA,EACjB,YAAY,CAAC;AAAA,EACb,WAAW,CAAC;AAAA;AAGP,IAAM,2BAA2B;AAAA,EACtC,CAAE,KAAK,aAAa,SAAS,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EACrD,CAAE,KAAK,aAAa,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EACtD,CAAE,KAAK,aAAa,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EACtD,CAAE,KAAK,aAAa,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA,EACtD,CAAE,KAAK,aAAa,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EAC9D,CAAE,KAAK,aAAa,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EAC9D,CAAE,KAAK,aAAa,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA;AAKzD,IAAM,QAAQ;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,gBAAgB;AAAA,EACjB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA;AAGf,IAAM,SAAS;AAAA,EACpB;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACtJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACtJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACnJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;A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AA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AA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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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", "names": [] } diff --git a/dist/human.esm.js.map b/dist/human.esm.js.map index dedf887a..00da49b9 100644 --- a/dist/human.esm.js.map +++ b/dist/human.esm.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/blazeface/facemesh.ts", "../src/posenet/keypoints.ts", "../src/log.ts", "../src/sysinfo.ts", "../node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/transform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transform_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../src/tfjs/tf-browser.ts", "../src/tfjs/backend.ts", "../src/blazeface/blazeface.ts", "../src/blazeface/box.ts", "../src/blazeface/util.ts", "../src/blazeface/coords.ts", "../src/blazeface/facepipeline.ts", "../src/human.ts", "../src/age/age.ts", "../src/profile.ts", "../src/gender/gender.ts", "../src/emotion/emotion.ts", "../src/embedding/embedding.ts", "../src/posenet/posenet.ts", "../src/posenet/modelBase.ts", "../src/posenet/heapSort.ts", "../src/posenet/buildParts.ts", "../src/posenet/decodePose.ts", "../src/posenet/vectors.ts", "../src/posenet/decoders.ts", "../src/posenet/decodeMultiple.ts", "../src/posenet/util.ts", "../src/handpose/handpose.ts", "../src/handpose/box.ts", "../src/handpose/handdetector.ts", "../src/handpose/util.ts", "../src/handpose/handpipeline.ts", "../src/handpose/anchors.ts", "../src/blazepose/blazepose.ts", "../src/blazepose/annotations.ts", "../src/gesture/gesture.ts", "../src/imagefx.js", "../src/image.ts", "../config.js", "../src/sample.ts", "../src/draw.ts"], - "sourcesContent": ["import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\n// Detect the global object, even if operating in strict mode.\n// http://stackoverflow.com/a/14387057/265298\nvar global = (0, eval)('this'),\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport * as packageBundle from '@tensorflow/tfjs/package.json';\nimport * as packageCore from '@tensorflow/tfjs-core/package.json';\nimport * as packageData from '@tensorflow/tfjs-data/package.json';\nimport * as packageLayers from '@tensorflow/tfjs-layers/package.json';\nimport * as packageConverter from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs: packageBundle.version,\n 'tfjs-core': packageCore.version,\n 'tfjs-data': packageData.version,\n 'tfjs-layers': packageLayers.version,\n 'tfjs-converter': packageConverter.version,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json', // can be 'gender' or 'gender-ssrnet-imdb'\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n"], + "sourcesContent": ["import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\n// Detect the global object, even if operating in strict mode.\n// http://stackoverflow.com/a/14387057/265298\nvar global = (0, eval)('this'),\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport * as packageBundle from '@tensorflow/tfjs/package.json';\nimport * as packageCore from '@tensorflow/tfjs-core/package.json';\nimport * as packageData from '@tensorflow/tfjs-data/package.json';\nimport * as packageLayers from '@tensorflow/tfjs-layers/package.json';\nimport * as packageConverter from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs: packageBundle.version,\n 'tfjs-core': packageCore.version,\n 'tfjs-data': packageData.version,\n 'tfjs-layers': packageLayers.version,\n 'tfjs-converter': packageConverter.version,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json',\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAB5n2q03LfDqqx39y39npmlxbS/TOG5se29tuavzgWzeV4mtui2\nO3RRSY2hdVhqO2MvI36iu9lUsrSrvDHn6spnmSiq5jooyV6tq1VV69RC32byTh43h8otMx+r6I+Z\naK/g8TwX7bXh9Mid4iW+fjl8n1ICWb57xLBOm4zqse20Tbmj8+qKdnS9q8PhcTw5tumSm0/OHMxz\n0Za+uzx3sX1t0Zxurr1ZxvspWiZYWZbsbT0QK7KLrZVZJFaqt5vbezNOTg9J/FaZeJns93wCvLwb\nT/GJn92uGHldIBowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuAPA67F9H4l\nqMW20VvO3yRWW97T4fC4rXJHSMtI/WGhVlue3b473K2KzMML4+62tujG9pnozXaOSOVFMnVbmq1t\ntrJRW5E7wwvUxTvCyY6CHOt7moxz6Wh9PxTzYaT61h8x1MbZK/OH0zTf+Fxf6I/htj45vL9WgLMn\nmvbPFvocGWO9L7fq85p5maw9d7VYvE4JkmPu2if3eW0+PasdFNOnxfF1Y2hlykRsmY+LJ0MZjZXa\neq2eyi8oQTO0KLdZWzPRjWu6VaqtHR73g0bcI0sf0Q8Nkq93wqNuFaWP+XDTDDytwBowAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAef9q8HNpcGaI60vtPyl56k9Iew49j8ThGe\nPwxFv0l4zH2U26fDfTYiyJljvsjf4sm6vJ1hrXjq2MkqLdZEVbgbMx0auGdmzNt6iHN1Ub5af6of\nTdPG2nxx6Vj+HzaaTm1+nx/iyVj930ysbViPRrj45vL9SAuyc7j1efguqj+jd4/T33rD3HEcPj8O\n1GP8WOY/Z4TTT7sKadHhbcsZnaCJ3TPZk6VdrKbTutmP0U2nqgrGOsr8deiuI2X09EqKM1dt3uuG\nf/jdN/06/wAPE546S9rwud+Gaaf+XH8NMMPK2wGjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAABrcRp4nDtRWPPHP8PCYusPoWSvNjtX1iYfPuWaXtX8MzCuvjfw32siu8ptXoxi\n0wy5t4YulReqmazu2skbquURWFInddM7VYRGyL291KFnCcfj8e0le/Lbmn8n0N4b2Ur4nHLWmPsY\n5e5a5+OXyXugBZmiY3iY9Xz7NjnTa3Ph/BeYj5PoTxftFg8Hjk2iOmWkW/Psrr418V5WrWd2faFc\nV2jdnEMXWxntupmN7NiYU27iWML6dVMVnddjgVqMsdHr+CW5uE6f4Rt+7yuSsTDv+zWXn0WTHP3L\n/tK+GHl+O0A1c4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8Dn93W56/wDM\nt/L3z59qp24jn+OS38lnpr4r7ZxHQ2TEstt3PXUrt27K57rr1VT0BjKnJPRbMqMs7QlV2fYvHvrd\nVknyrEfu9m8f7FZI8fVU85iJewbT45NfQBKo817W4eulzxHaZrL0rje09ItwqbfhtBVs3leai8RD\nKLw1sduesL606dWFdsZT1jdhNeq6K9DlhCVUU6s4jZnt1YzAhnM71dH2bycmszY/K1d/0c6OzY4R\nfwuK4p8rTstn6z8k7HrwGzkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHz3\nVxvr80/8y38voTwGpj/F5/8AqT/JfjTx/WVeyY6FPspc9dZPVXaOq2WEwIUTVRmjo2rNfLHRI3vZ\nDJycXtX8dZh7t879nsnhcbwz23tt+r6I2nxyb+gCVBzuPY/E4PqI9K7ui19fTxNBnp60n+Aj5/pJ\n3jZu1aOnnltMNussdfXbm+l3ZM9URHREdZVXTuT1Nk7boQiOkJw28PU47/htEp5eivJPLMTCZ9Vv\nx7mJ3iJ9UqNHk8XR4b+tIXuhxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\nweqjbWZ4/wCZP8vePCaz/wDIaiP+Zb+UX408f0r9lOxWOifJhXWjfyYWllPRXYQxnrCrJHRd3YZI\n6A1NJecHEsN/S0T+76bE7xE+r5dk93LW3pL6ZpMni6PDf8VIn9m2fjm8s9rgFmQxvHNS0esbMiew\nPnHLyai9fS0w2aNfUTtrs3+uf5bGPqy068fF227KtSsdFlKqNGMV6myyY6sbdIQI8tlOWOi6Jhhk\nj3RD0vA8nicMx9etZmHRcT2Zyb6XNT8N9/2dt0T449T2AJVAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAHhdfG3E9TH9cvdPEcXjk4zqI/q3L8aeP6xr2TsxpLOekMK6mFo6qpXSrm\nOqBixvHSVmzC4OfqK7S9/wAByeLwbTW9K7fo8Fqo6Paeyl+fglI/Da0NcMPK7QC7AAB8313TiOf/\nAKk/y2MHWrX4jG3E9R/1Lfyv0/aFNOrHxuU7LI7MMayGTVlHWUXhNe6Z6wIUsb9d1m20q7dkDpez\nN9tRqKT5xEvRvKez9+Xis1/FSYerb5+OTyf6AFlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAB43j9eXjN/jWJ/Z7J5L2mry8Upb8VIF8f6aGOey2eynHvOy7bowrrYSxZSwQJ2YXZ\n92N4BoanrEvVexmTm4blr+HJ/aHltRHSXofYm/1Wrp5RaJaYY+X49WA0c4AD51xONuKan/qW/lbp\n+0MOLRtxbU/9SU4J7KadWPjep2WQrr2WRPRk1TvsndXMpiRCb9FNu0rbTuqvKBscCjfi9PhWZeue\nV9n434rafTHL1TfPxy+T/QAszAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmv\navHtfTZfnV6VxPajHzcNrf8ABeJFs/XnMcr4no18c+6vr2YadkY2YM57sEDLyY37Mo7MMnYGlqO0\nvQ+xNfqNVb1tEfs87qZ2rL0/sVX/AHdnt65P7Q0wx8vx6UBo5wAHz/jUbcX1PT78qtO2vaCnJxjP\n8Zif2amnnspp04+OjWejKJ6MKdmcMmyJn4m5ZHzEVPMwtJv0VZLbQDqezcb8RzT6Y/7vUPM+ytZt\nn1OTyiIh6Ztn45N/6AFlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABocbxeLw\nnUR5xXm/Rvq8+OMuDJjntaswEeBxT0bNZ6NatZpNqz3rO0rqsdO3PxlaWEMpY+aqWXkryT0ZT2V3\n7A0dVPuy9f7G124NM/iyT/Z4zWT7sw957MYfB4Fp4/FE2/WWmGHldcBowAAeM9qKcvFeb8VIly9P\n0nq7ntbTbVYL+tJj93CwT76unR4/jo0nozhhTsy3Y1sWljM9Ce7HyQIm3RRlttVbaWrnt0Sh6n2U\nx8vD8mSfv3/h3XN4Bi8Lg2nj8Uc36y6TeOPXugCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAPD8RxeBxXUU26Tbmj8+quro+02Lw+I4ssdslNvzhzazvDPbq8d7GW7Dfqz2VzG\n0s2qd+iu/Zn5Ksk9BVztX1mI8930zh2LwOHabH+HHWP2fNYp4+vwYvxXiP3fUqxtWIjyjZtj45/L\nfaQFmQADzftfj3w6fJ6WmHmsP23rvaqnNwqLfhvEvIYZ+sV038bo0noy36MK9oZQxrdMyrlnMbMZ\nQKrS1M07zEestq/RRjr4utwY/wAV4j91p9V18fQdJj8LR4ccfdpEfsuREbREJbuMAAAAAAAAAAAA\nBAJAAAAEAJEAJQAJQAJEAJQAJQAJEACUJAQlAJEAJQAJQJAAAEAJEAJBAAAJAABAJEJAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwvanDzaPFmjvjv8A\ntLztJ3h7HjGHx+FainnFeaPnHV4vFbeIU038VbHeGF+kso7Mb9mTdhKnLK3dRm7SIrHhGPxeP6Sv\n9cT/AHfSnz72Zx+J7Q45/BWZ/Z9BbZ+OXyfQBZQABzeP4/E4NqI9Ii36S8Ng/wAx9C4jTxOH6ivr\njn+Hz3B/mQi/GvjdCnWNlsdI2V07LIlg6USrt2ZzZXMoFV+zPhGLxeOaavpbm/RVltEN72Yx+Jxm\nb7dKUmf7L5+s9/HtRA2cqRACRACRACRACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQCQQCRACRACRCQBCQBCQB\nACRACRACRACRACL1i9LVntMbPATTwdRkxT3pea/u+gPE8Xx+DxrPHlaYt+qNfGvjvtXXsi0dOrKk\ndEXjZg6VMtbP2bMtXUdpEV0/Y2nNxbNf8OP+727xvsXH+N1U/wBEfy9k3nxyb+gCVQAGOWvNivX1\nrMPnGGOXNNfOJ2fSZ6w+dZKeHxDPX8N7R+6L8a+L63KdoZ7q6zvEMpnowdKJ6ywmWUyqvIKM0vQ+\nx+D6rU55+9aKx+TzWa36vbezmDwODYenW+95/Nphj5L6dQBo5wAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAEiAAAEoA\nAAAAAAAAAAAAAEAkEAkRuAkQbgkQAkQAkQAkQAl5T2nx8nEMOT8dNv0l6pwfarHvpcGWPu32/WCr\nYvK4mOem6b9mGKd4Z3idmFdka0y1c892zfpMtLPaNpEV6D2Kj/Eauf6YeweQ9ieuTVz8K/3evbT4\n5NfQBKoAA8FxCvJxrUx/XMvevD8Zry8fz/Haf2RfjTx/6RSOnRMyypHu9kXjowrqVSrvPRnZVl6V\nkK0775MsUjvadn0nT4ow6bFijtSsVfPuFYvpPGtNTy54mfy6vorXDm8l9pEC7JIgBIgBIgBIgBIg\nBIgBIhIAgBIhIAgBIgBIIBIAAhIAhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAA\nAAAAAAAAABAJQkAEAAAAAAAAAAjc3BIjdG4Mkbo5kcwMjdhzHMDPc3V8xzAs3N1fMjmBZubq+Y5g\nWbm6vmOYFm5ur5jmBZubq+Y5gWbm6vmOYFm5ur5jmBZubq+Y5gWbm6vmTzAz3N2HMnmBlu5ftFTx\nOEZJ/DMW/d0t2rxKni8N1FPWkiZ9eS08e7Cy8dGGn6UhZaJljXZGnmc3UT3dPP2cnUT78xCIV6j2\nH/8A9c/6f7vXPI+w8bU1U+vL/d63du5NfUiDcVSIAS8b7RV5eOb/AIqRL2TyXtNX/e2KfXH/AHlF\n+NPH/pr4+2xcxx0hFpY11K7R16KM32ZWz3UaidqSgrc9kcPicWyZJjfw6T+727y3sXh2xarN+K0V\nh6lvPjj3e0ASqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAAkQAkQAkAAAAAAAAAAAAAAA\nEgAAAAAAAAAAAAAAAAAAAAAgAAABKDcAN0bgkY8xzAyRux5kcwM9zdXNkTcFm6OZXzMeYFvMibKu\nZHMC2bo51U2RuC2bom6rc3BZzom6sBZzI52ADPnOdggFnMc6skFnMc6rc3BbznOp3RzAv50c6nml\nHMC/nOf4qOY5wX85zqOc5wbHOc7X5znBsc6edr85zg2ec52vzpi4NjmY5bROG+/bllVzsNTk5dLl\nn0pP8BHmMHWNmzt0aum8obm08vVjfrtnxztR0mXHzTvaZdjVRMTLkZo6yiFen9iZ2pqY/wBP93rN\n3kPY+/LfPX1rE/u9XzN3HfqzdO6vmTuIZ7m7Hc3Bnu8t7TR/vHBP9E/y9Pu837SV31umn+if5Rfi\n/j/01MMb1hjkrtKzBG0bMsmOZY11tOYamr6Und0LUc7XT7u3rJPqL8er9lcPhcFpbzyWm39v7O00\n+FYvA4Zpsc94xxu227jv1IAgAAAAAAAAABKAAAASgASgBIgBIgBIgBIhIAAAAAAAAAAAAAAAAAAC\nUACUJAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAg3AEbomQZbo3YzLGbAz3RNlc3YzcFs2YzdVN2\nM2Bdzom6nmNwW86JurTAMuY3REJ2BB1ZRVMVBhsbSsiqeUFXLucq3lTygp5TlXcpygp5TlXcpygp\n5TlXcqOUFXKjlXcrGYBXysdlswiYBVMdUTCyY6sZBWxlnMMZgGLGZZSwkDdHMiWO4MuY5mEyjcFn\nN1OdVzHMC3nTzqeY5gX85zqOZPMC+Lqdbk20eb/RKOZr8QybaK/XvtH7iZ9aGlp2luzT3fg19NHS\nOjbmPcYX67XH1XSZ9XIzRvMuzrK7zLkZYmYnciunb9lZ5dTk+OP+71cXeP8AZnJ/ip2nf3J/l6iL\n/Fu5L9bMWZczXi6YuIbEWTzKIuyiwLt3nuO25uI4a/hx7/rLuczg8TicvFLbfdpEK6+NPH/phhjo\nstLGkctUWnoxrrU3j1cnWTzZq1jzl1clo5Zcu8c+txR63iP3Tn6pv4+g4o5cVI9IiGe7CJ2iE7t3\nGyN2O6dwSINwSISAlAAlACRAAlAAlACRACRCQAAAAAAAAAASgASISAAAAAAAAAAAAACQAAAAAAAA\nAAAAAASAAAAAAAAAAAAAAAAIAAAQCAJljuljsCJlhMs9mOwMJYys5TkBVsjZdyHICrZPKt5E8oK4\nqmKrOVOwMIqyirPY2Bjyp2ZbAI2NmSARsbMgEbI2ZAMdjZICNkbMkSCNmOzJEgx2YyzljMAwlhKy\nWEwCuWErJhhMArlhLOWEgxljMpljIImWMyTKJA3N0IBO5vux3NwZbnMx3NwZczT4jf3MdPW27a3a\nfJOq1XNP2KdIRfi+J2trSYfcjeF+Wm1OicVeWIiN9kai8xjY12ORqultnI1Ecsujq79XP1FovWYI\nrTgeq+j8QrWZ+3Mx+r2UXeC0WG2Ti2kiN5mL807eUREvbzbaejefHJv62Iv8WUXa0WTFhVtRdlF2\nrz9WUXBtc7jR9dqc2T1ttHyhvZMvJitb0jdq6XHNcNenWVN3028U99WRj6Kb02be3Tq18/SN2Lpc\n3UdN9nOmZrqKX/DaJ/d0svvTLRzV3jomK6+Pd1vvWJj0ZczT0mXxNJht60hfFnQ4qu3N1cWTEgs3\nTur5k7gz3N2O5uDM3Y7m4MtxBuCQASIASIASAAAAAAACRCQAAAAAAAAEoSAAAAAAAAAAAlAAlCQA\nAAAAAAAAAAASAAAAAAAAAAAAIASgAAAEJAQJQCNkbMgGOyOVnsAw5TlZ7GwMOVPKy2NgY7GzIBGx\nskA2AAAAAAAAAAQkBAEghEskAxYzDPZGwK5hjMLJhjMAqmGEwumrCagomFcw2JqqtUFEsLLrV82F\no7gqljKyYYTGwMZRKUSCAQAboJnaN5Bjkneu0d5W4ccViIiOzHFWbTzNumP1Zarr8eeRMbxDW1Mx\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n"], "mappings": "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,QAAQ,KAAK,SAAA,WAAS,OAAO,CAAC,MAAM;AAEzD,gBAAc,QAAQ,CAAA,MAAK,UAAQ,8BAA8B;AAEjE,SAAO;;AAGF,IAAM,2BAAyC;EACpD,YAAY;EACZ,aAAa;EACb,YAAY;;ACrFd;;;;;;;;;;;;;;;;AAiLA,IAAM,gBAAgC;EACpC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF,WAAW,gBAAgB,eAAe;AACxC,iBAAe;;AC/UjB;;;;;;;;;;;;;;;;ACAA,IAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;AAiBA,IAAM,WAAmD;AAEzD,IAAM,mBAA2C;EAC/C,OAAO;EACP,WAAW;EACX,oBAAoB;EACpB,uBAAuB;EACvB,OAAO;EACP,SAAS;EACT,8BAA8B;;A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,IAAM,iBAAgC;EACpC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF,WAAW,gBAAgB,gBAAe;AACxC,iBAAe;;AC1UjB;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;AAkBA,IAAY;AAAZ,AAAA,UAAY,WAAQ;AAClB,YAAA,UAAA,aAAA,KAAA;AACA,YAAA,UAAA,WAAA,KAAA;AACA,YAAA,UAAA,UAAA,KAAA;AACA,YAAA,UAAA,YAAA,KAAA;AACA,YAAA,UAAA,eAAA,KAAA;GALU,YAAA,YAAQ;AASpB,IAAY;AAAZ,AAAA,UAAY,oBAAiB;AAC3B,qBAAA,mBAAA,YAAA,KAAA;AACA,qBAAA,mBAAA,UAAA,KAAA;AACA,qBAAA,mBAAA,WAAA,KAAA;AACA,qBAAA,mBAAA,WAAA,KAAA;AACA,qBAAA,mBAAA,eAAA,KAAA;G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AE,GAAG;AACjC,iBAAa,WAAW,YAAY,IAAI;;AAE1C,eAAa,WAAW,YAAY,MAAK,SAAS,OAAO;AACzD,QAAM,YAAY,UAAU;AAC5B,SAAO,MAAM,YAAY,UAAU;;ACxDrC;;;;;;;;;;;;;;;;AAsBO,IAAM,sBAAkC;EAC7C,YAAY;EACZ,UAAU,CAAC,OAAc;AACvB,WAAO,CAAC,GAAG,MAAM,UAAU;;;ACzB/B;;;;;;;;;;;;;;;;AAwHA,IAAM,cAA4B;EAChC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF,WAAW,kBAAkB,aAAa;AACxC,mBAAiB;;ACpOnB,IAAA,8BAAA;;;;;;;ACAA;;;;;;;;;AAaA,IAAI;AAKE,oBAAiB;AACrB,MAAI,YAAY,MAAM;AACpB,eAAW,UAAU;;AAEvB,SAAO;;AAcH,2BAAyB;AAC7B,SAAO;;ACrCT;;;;;;;;;AAuBM,IAAA,iBAAA,cAA8B,MAAK;EACvC,YAAY,SAAgB;AAC1B,UAAM;AAEN,WAAO,eAAe,MAAM,eAAe;;;AAOzC,IAAA,eAAA,cAA4B,MAAK;EACrC,YAAY,SAAgB;AAC1B,UAAM;AAEN,WAAO,eAAe,MAAM,aAAa;;;AAOvC,IAAA,aAAA,cAA0B,MAAK;EACnC,YAAY,SAAgB;AAC1B,UAAM;AAEN,WAAO,eA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ACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,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AAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACtJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACnJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,E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AAAA;;;ACzJlB,IAAM,UAAU;AAAA,EACrB;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0Jb,IAAM,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3JpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,IAAM,UAAU;AAAA,EACrB,OAAO;AAAA,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", "names": [] } diff --git a/dist/human.js.map b/dist/human.js.map index e94e5487..b8d59b80 100644 --- a/dist/human.js.map +++ b/dist/human.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/blazeface/facemesh.ts", "../src/posenet/keypoints.ts", "../src/human.ts", "../src/log.ts", "../src/sysinfo.ts", "../node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/transform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transform_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transform.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../src/tfjs/tf-browser.ts", "../src/tfjs/backend.ts", "../src/blazeface/blazeface.ts", "../src/blazeface/box.ts", "../src/blazeface/util.ts", "../src/blazeface/coords.ts", "../src/blazeface/facepipeline.ts", "../src/age/age.ts", "../src/profile.ts", "../src/gender/gender.ts", "../src/emotion/emotion.ts", "../src/embedding/embedding.ts", "../src/posenet/posenet.ts", "../src/posenet/modelBase.ts", "../src/posenet/heapSort.ts", "../src/posenet/buildParts.ts", "../src/posenet/decodePose.ts", "../src/posenet/vectors.ts", "../src/posenet/decoders.ts", "../src/posenet/decodeMultiple.ts", "../src/posenet/util.ts", "../src/handpose/handpose.ts", "../src/handpose/box.ts", "../src/handpose/handdetector.ts", "../src/handpose/util.ts", "../src/handpose/handpipeline.ts", "../src/handpose/anchors.ts", "../src/blazepose/blazepose.ts", "../src/blazepose/annotations.ts", "../src/gesture/gesture.ts", "../src/imagefx.js", "../src/image.ts", "../config.js", "../src/sample.ts", "../src/draw.ts"], - "sourcesContent": ["import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\n// Detect the global object, even if operating in strict mode.\n// http://stackoverflow.com/a/14387057/265298\nvar global = (0, eval)('this'),\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport * as packageBundle from '@tensorflow/tfjs/package.json';\nimport * as packageCore from '@tensorflow/tfjs-core/package.json';\nimport * as packageData from '@tensorflow/tfjs-data/package.json';\nimport * as packageLayers from '@tensorflow/tfjs-layers/package.json';\nimport * as packageConverter from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs: packageBundle.version,\n 'tfjs-core': packageCore.version,\n 'tfjs-data': packageData.version,\n 'tfjs-layers': packageLayers.version,\n 'tfjs-converter': packageConverter.version,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json', // can be 'gender' or 'gender-ssrnet-imdb'\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA\nAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu\nbmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob\nIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgo\nKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgBAAEAAwEhAAIRAQMRAf/E\nAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAE\nEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZH\nSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1\ntre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEB\nAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXET\nIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFla\nY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG\nx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+qaKACigApGOKAML\nXp8xlF5A7V4X8RtYs7PzfNImnx8sa8Kp9z3q2tEgp6angWs62ZZ5CTGoJ6DArGNz5p+UrID6EUrF\nPUlW1EuN0XNW7PQ2L5j3JnoKXN0KijqNP0eYoqXBdgPuuo+ZPeupisWn2Jd4+0r924XgsQOCff3/\nAJ1FzRKxDqGii6m3siiQ8F1XGfXI6YNWLfRbiRQMkcZI9fpTDluT2/h6Qy8gDPbtmtG38JeY480Z\n5zSLUTZg8M28YwYxjAArXtdPt402qgHbpSaLWhma3o0Uqk7Nx9DWLaaVblgPs6qRyds2M/gRSQp9\nzZOni2iWS2hlQ+kjYz9OMGrdjq89vIPPVhj+8M/lQyDq9P1WOYBlMZz1AOD+VdDaTiReOKulK0jO\ntHmi0WDTlr0TyxRVhT8tJjIX+9SUxHXUV553BRQAVBcPhSBTSuxPY86+IGti0s5I7dsORy9fM3i6\n8e8mfDO5P90ZrWWiJicNPpZZtxV/xrW0jQt4DOv6Vk2dEEdTY6BHuB25rpbPSo0QARjP0qTRI17W\nwA/hFaMWmoQMgflQXYsDS142rU9tpqqenfNA7GgtihxkdKuRW6qMY/GkDZY8sY4Ap4hXbyB+VArk\nEtuH4wPyrk/EGkOm+a3jw3suRQLc5i38SX9hJ9nnY+XnBUdPyNdFY6pa3KkkAE9l6f8AfJ/pSJT6\nGhDmI+Zb4ZRycdv6ium0nUhKFydrelTsNnS2829RnrVgV6NKXNG55lWPLIM81Op+WrZkRMfmNNzT\nA7GivPO4KKAEY4XNYWt3vkwPg4OK0giJdjw/xrqhm87Zs8tc7pX5A+leSajf6aHYJ50kn4AZpTep\nrBWRm2Vobm4BXfyehPFdnpmnBFUY5rI2SN63tlToK0YI+KZpFF+3QdavwoKTLtoW0Toaswpk5pCb\nLCxipAhoIuP2dKevHXoaYDylRyxhlwRQI4nxVoCXWZI1GfpXGtbSWjYPGP73+NIGupt6TqMsLruZ\nih4xnP5V09mQ+JLd8gn0xSYJnVaVdkook69K34zuUGunDS3Rx4qOzHVIp4rrOMY3NJQI7GivPO8K\nKAILt9kZrz3xlebYiu8KCCWb0XvW0NFch6ysfO3jLVjfXLIn+pQkKorl7WxNxIPl71g2dUUdpo+l\npBGvHPet23iC8ihFosrxirkHQUFo0IF4FXI1O726CpKLacCrMJoJLYHAPpTwucHpSRJJ5e4AZI9x\nUqpxzVpCuOC8cUpQUMRnXttuB4rjNdsYyeVwfXpmpGmcvcQyafMCFJjPY10eg34BUg4DcZP8jUO4\nHaRq3lLNF+IHet7R7jz7c56rwa2wz9+xhiVeFy/T1PFegeaNPWigDsc0ZrzzvDNIaAM7VpNqdegr\nxL4l6kywyRhseZ19lrdfAZL4jxYg3Fw20d63tJsdrDI5rm3Z3R0R0Mce1eKnQYAplIkWrMJ45oZS\nNO3PHbNXIyfpSGWowSOasxLUiZdjFSqtNEMkUemKlAGKsRJjAppFAiORMjmsTVrNZEO4cfSoZSOD\n1eJ7WXBUzQZ+7nkfSo7e2Ei+ZaMzxntjBX2NSU1Y6/wxqojiEFzkA8KTXYaUoWRyv3W5rSjpNHPX\n+BmpSg8V6J5gUUAdhRXnneFFAGHrTfu5PpXzj8S70/aZtxzztXFbv4DKHxHI+H4GZiz9zxXXW8G3\nGBXMjvLRXAx0oPGPSmMVeOnWrMTYpFI0bcg1fh54xmgovRcD3qxETSIZcRvzp+/BpEkqsBUqsM9K\nq4Em4Gkxk0yRGXrVW6i8yFhkg+tJjRxGsWrxllkUMh9eK5uMz6bcebbnfG33kPcVkay2OntPKuo0\nnhXI67c8qa7Lw3c+adjcEDGK1paSRhVV4s6A0or0jyRRQ1AHX0V553hRQBz+vNtt5z3xXzX8Qbdm\nuic5YnOMdK3l8JnTXvlbwpYl+WySOgrp5YfLOOB9O1c62O7qQkc+9RsKChFPWp4DluOlSykaNruH\nArUgHShFNF2NT1qxGO3NBmyxGcE1N2560CFzjrUysO9JAPDDjFOVuKoQuSRTWouBkazbCa3cd8cV\nwF7IISQccHBzUSWpV9C3o1x5b5GAjdQD1rs9DjC3kckbEhqKfxIzn8LOupRXqnkPccBSkUAzraK8\n87wooA5rxMSI3HqK8B8bQl9Q8sffY5b/AAraXwkUviNrw9pH2W1ViMMRTdRjw4HpWNtDti9TPc4P\nFQs2M5qdyyMHLcfjV63HTAoBGtap0wK0YxigpsuRDtVhVYd6GQydVwwIqdRnqKCR23I5pCMUW6gD\nYNKuetAEise9KTxQBWuFyhrznxNZkXjFeN3I+tTIZg2OqmzmxNF0PO3vXp/g2+hukVl4zyPanTXv\nJmVR+60dpThXpnlPceopWFAbnV0V553hSGgRynjC5FujOey14Ssp1HxNmTnc+a3kvcIpv37HoEYQ\nQmMdVHSsnVbYJF5jVk0dsNzlruVIsl2wKxbjWrVHILjg1CRbZJb+ILHPzyhfStODWLQgFJFYd+el\nUJM27HUIXxhga1Y5lLVLKLkMnoauxnPPrSEx7ShF+Y/n2qrc6xBbhizDAqkK1zJuvG9nbg8ZA681\nly/Ei052RO3uKAsZlx8QGd8xxvt9Aa1NH8dK7AXMcip64zigdkdrZX8F7EJLdwwNXMkrz1qRMRly\nCK4TxmpidWI49felPYSOMmi80NIoOV6qRzXYeA5SskYPfirpfEjGr8LPWVHyD6U4CvQPL3ZItOYc\nUDOoNFeed4Uhpks4H4iE/Z5MeleMeGULeLgjds10S+BGdL+Jc9OSBU2Huc5Nc74yvUtrcDBrJnZF\n63PJdXvLy/lKWw46bvQVz82jXhkLO5Y+9ZlsYthcRnbIjY9R3q3awTRkEM3WmJI6C0ea3dGRsr1x\nXY6TqW9FLHnjrUs0izpLK5DDjofSta3ckH09KRUkZuuTvFGdvPauE1Y3U6Mqbssf/rUxHPTaJPK2\nZmJPbBqzY6DCZh5xJC9s9aBJHU6dpemJjfEmfetJtI0+VPkUr/unFOxdiextHs33W07YHQHk11mk\nXb3KbZ1xIvcd6LEyWho4Nct41sTPYb16ipexCPPZN+wYGCvH1rrPAEJmvkPoc1VL4kZVvgZ6yFwK\ncBXoHkkqinFaVyzo80GuE7WJRQSziPiGdthK5HQV4x4J/wBI8WPIewNdEvgRNL42emO/yj1UHNef\neNpRczbC+I17DvWT2OqJxc0sMK4TCisy41q0hfEkqj8aixdwTXNOlwvmqD9anS9tXH7uVG+hosO4\n/wC0oOhrR0+6G4YNIEzsNEuCxAPNdjZruA4xxUmjINSjURksOlcbqFykbnjFA1sYGoassaknCqO5\nrl7rxhGm7yBnBxuJq0rkSlYpw+NLlsfd5P8AerVsvHEqSBHwPVgcgVpyMyVXU3rXxcHYETAk+hru\n/DWti6ZSTyOKzZqndHaxvvUGq2rQ+dYyqR24qWI8dvbr7LqDxyDAzXpvw6FvIxePGSM06Xxoyr/A\nzviKFHNegeX1J41zUhXioGbuaSuM6wpCaBHG/EcA6HN/exxXjXw2jL67cv8A3Qa6H8CFR+NnoWpO\nI4XI44rxLxrqjQzSEsQM1gdSPM9U1uR1YbmWIdXHf2rmpIb67YS28UrRlsLI3c/jW0VZGUpO5pW1\njfLNOjahawzwReYI5cjzMkDavHJ5/SrVv9uhtPtVxCPLBwzxnlT9KGghLU3tKvvPjHzbl7EGuisJ\nGRxWLOg7nRXJEbDjmvSNK+aFSfSoZr0KutRkphc4NcRrdkVjL9aVio7Hk3iqS8ubhrWzUlsZY9kG\ncZNc5D4aee5MclzJIFTzHAO0MfatqSOWu7bFS1srDUZEis0vIZoUxPvfcC+4/dx2xjr712XiTwXb\nWmlQ6hol3cRhoFd4rlg3zY5wR0GelavQwjq7GD4etdVvSnk2wAB+9v8A8mvcfA2kXiRo0/UdcDis\nZnTTulqeoWqbUAJqWUb42X1FZlnjfjSwlGrr5S/eNdD4RkvLAAQ4yRyaUZcruVKl7TQ9I0G+mnzH\nckFwM8VuIK7ac3KF2eXiKapz5UWYxipNtMyNejNch0jSar3cjR27uoyQCRVRWom9DxTx54gu5fMi\nlbKdMVjfCZPNlv5v9rFbVHpYqjGzbOn8SzFI9o715L4u0r7arYzk+lYdTqSujy7U/C0u4vHk+WwO\nxuh9q3J9dgvbdVukMV1EwbDDgn04rZMwlHoZ+orZ6hfQ3RWVnQYCgZAq+8U0ln5NtBsV2yxYcfgK\nJtW0CnB31LlroVwJ1nQLGDjeP7w+lb0dsFxjrWB0tHS6NuWPJ6A16ToUm63T3Gallr4S7cxiTjrX\nPaxaF7dlVeSMUhxZ5jd+H7qCa4eF3DSE5x3zXN3Wk6jbyeaiFWUY6ZyPStYS5SalPmVipFbX0E4c\nW0alvmPHJrag0rVvEE6LdljGpG2NRtQD+tW5XMI0uU9M8NeFo9PiQhecDIIrtrOMIoG3H4VlJm9t\nC6CB06VPGM1IHLeItGS6uw+ORT7e3jsbQvj7gzUNam0JaWE+HN7NqOqX80n3FO1RXo8YzXdS+BHk\n4z+KyzGPapcU2YIv7qQtiuaxvcaWqG4O6FwfSrS1JbPnrxoxkv7qIfejcitj4V2f2exumI+8+aKn\nxHTT+G5d8Txlm4rjLxMsQwzWT3OiK0Mm6sEkVsAcjFc1d+FEmlGwEDPQVopaEuOpr6f4ZWNAu3tW\nvHpAj5ZQcUFIWaDjGMVUMQ3cVDBmvbhY7QAV2nh+T/R1yeKhlrY31+b61FcQK6nIoJMi401WblRi\nqr6PCw5UYq9y+YgOgWzNkRrx3xWjp+nx2v3FQcelAbmko9anQ4GBUNisPHWr1qMrQhS2K11HvmYV\nhamcxSRZ5xRIqluS/DKAQQXZxyXrvo2FdlL4EeZjH+/ZbjNSZpswLNBrE1Gt7VE4ODVIlnh/j61F\nj4lmeTGyUbq6LwdEqWbeX0YbhSqfEddP4Bddj4JIrhL5d8h7VjI6oLQqKNzelWre3yc4/ClFjaL6\nwqBxxUUxwCKu5BmXRA6c+9ZjP83FSBoQuPs4BrsNBlUW659KmRrDY6G1lyQtW3Hy0lqQ1qVJnAbm\noy3b9KYJCqRj3o4zRctIlhjLHmpSuOBRbQOpLGpPFaES7UqkZzKN1KsEc87/AHUUmvPLTVGv72aQ\nk7WJwKmRrQ3ud74Ltilgz4++2a6iNDXdS0gjyMU71my7GpqTbxSbMki3SViajTTHqkSeR/GeyZmg\nnQHkEE1S+F+oPPavBL96I4/Cia1udVF+4dVrkW+Fq8+v4tjMDWUkdVJ6WM0cNV+F+MVmjUcZgqnP\n1qpNNnkcVRLiZtxIS1UzzIF7mghlxUZpVQdq6nTVdAoAOKzkbQWhvwM6gMM1twOJYx3NOJE11Kt1\nH1/pVVlwBkk+9NocXoOQ45FPj+fkUJFF2NSB700v/hTEty5ZpkjvVyUgcCq6GM9zC14/8Se6GcZQ\n1574Xs5WkI2HBPHFQ1dm1KSSZ7Rotn9l0+KPHIHNacae1dy0Vjxaj5ptlhVp+2s2CJ9ppCKzuWNx\nzSFc1SYrHNeNdIGpaYw25ZeRXmvheyk0jVpEdcLJ0q3ZxNKTa0O3vQHg/DNcHrsJDmsmjspnNzNt\nfFIJ24GazOhC+azDmgZIOOKBsp3J2qSaZodubq58yQ4QAnmhGT3NO18pb7BORmu205LfYpyKVkWp\nOxr5gKYWoIZWgfGfloFq1qTPLubnGO1RPtxg4P0oBAkY/hBz6VNDDkZ6AU0W2WSdqkdKr9ZOaGSj\nVtcLHmnOcgmmYvcz7mBLy3MbdD1q9ouiRK6bUAVeelOC1InPlidSsWMDFOCEdq3uefykqrinYqGy\nrFvApMVka2DAowKAsMkRXQqwyDXn/iWyitNQ3qPl6itIvRoF8RXinW4tQ6HI6GuW8SIVBPalc6qe\n5x9x97r3qruwTjrWZ0ksZ9TUmcDNAmZ9/wAoao63rR0+w22MLPtAzt6mghmfofiB76LdJBJBIp5D\nd/oa7bSdWLIPnpDi9TM8TeKdas51XTbIyxd3J/pXS+E/EFxqNoFu7do5OmD60maHWrnZyDRkn/69\nMlEyOR0xntVoNx+FUgYjPxg4FLCuWDZyKQr2RoRnP0qO+nEFpJITgAUzLqZnhu6+0rknOTXpOmwJ\nFbrt5yMmnHYyr6Oxb2ijaKLnPYMClwKQWK3n0hn+lachHOJ9pNNN0apQFzsY10a4v4hXQh0xpieQ\nMA1XLZNjhK80cT8OdV+3Wl3A7ZZJCw+hrR1qLcjZ/CsbnfHRnFXseHJArOYYbrUs1uPhYbuatqFP\nByfSkMq3UIINYkto+87Tx6GkSxfsDbflGD7CtTw/pk4nzITtPIFMFudsukh4Rxz71paTpKwP5jcn\n0qTRy0NORMDgVCqewoJTJgAoxjntTiTu7fWmFxAcnn1q3EPl+X8KZMi4gKqB1Peob/Tv7Us5bfeU\nyOoq4R5nYxqT5I8xieH9J1DTbvyJELRg8ODwa9Ms5mSFV9BWiptbnNVrKdmif7Q1KLg96XIZc5Is\npNL5pqeUrmMtZs0jzV08phchaY00zH1p2ZNxjS1g+LdJOt6U9ssmxjyGp2urDjLlaZzng/wUPDqz\nTSTmWeTrjpVjVk3Rvjr2rnqQ5dDvo1XUd2cTqSNk9OKxXGCeKxZ1DAxHTr2q5C/y8GokUhsz54qu\nuCxzSQjQ0+FZblR2ro4bZYiMVQ0dBb7Qi5x0qzuG5QOh71LYErDufpSeWrHnimIXbjkUjLkH1Hem\ngGxryc+tXI19KYmWegq9YLiLJ7mtqS945cS7QsWehqxA9dEjz4krPSxyZqbFFhGxUm6smjRM55Lk\nHvSvNxXTY57kLT+9MNwKdhXGm5FIbkU7Bca1wMEVhaiuQcVhXWiZ14R6tHGanGBI2OtYkqEHjgVy\ns9ErEeo6UBsHipKEZs5qpPdRxcbhx70NCSuybTNWihc5brW9Fq6vjMnFSdEIdDRi8RRKygZbHFbu\nm6nb3RA3gMegNJhOm0jbXGOoxTuCc1Rz3FyoGKawz9KaAVcZqeMgCmIkB4FaUTbYwB6V00Fuzixb\n0SFMuDU8Mlbs4UPeXHeiOXkUrDuXYnyKk3cVk0ap6HMxxketSMhrcwRC0dMMZFMQ3yzSeVQAeUaz\n9Vj8uPd271nVV4m+GdpnHX67pCeKyLtBtNcR6xlk9RVeWTb3qRnO6trgttyIfm71z7ai8j7/AJmN\nDNqUVa5Yi1AnjynHuBV+11YJhWWXcP8AZNSzqgmaEerSsf3NtIQP4mGKtRavdRgMIpVI9KjU0a7n\nR6T43uYQI7qN2Tpkqciu503VVuQGAYZHQjFVc4alPlZrpKGAznpTwxOc9+lWjIlUACnM4XApiLNk\nnmvnsK0NvpXZRVonmYqV52GsmanhXitTmFkSiJTSAvwrxUxXIrJ7miOfjf1pzNWxkRlqYWpgJupu\n6gQbuahvIxPA6eo4pNXVioS5WmefakGhndH4INZs5DJXA10PaTurmLO21uKpSZqGMoXGnRzBiyjd\n9Kx5rcQS428fSkjanLoaOliHGZFB56VswW+mtPufcBsGOAfmxz+tFkd8HpoaUx09FAtFY8DO71qb\nSms/Nb7RbecG6AEjFLS5c78t+p0djpVs9wsyQiJAdyr1rW+zqjErzSe559Sbk9S3C+MA1bjbgE1S\nMSXzMVG0vNUI2tPKrAuCMnrVzNd0PhR49W/O2xrHmp4TxVMzQshpIzzQBehqesnuaI5VGzT2bitz\nFEbNTC1ADS1JupgG6l3UAc14s04yR/aYRll+8BXCtLncDXFWjys9TCz5oW7GddH5qqNzWDOgQnC8\nVSuo1kHzAGkPYopEY2+RWxV23Vzj5G/Kg3jWaNazhZuqNXS6TaKhB2c0jR1nJWOlhOxRxU4YkCgx\nY0OQatQyDbyaaFYe8uF4NY3iC9ltbVGj43NTIL3h7WzMihjzXVQXYYDdW9Cf2WcOJpfaRZ3g9KsQ\nmupnCLIabGeaAL0LcVY3cVmzRHIxtUhetzEjZqjLUAIWpN1ArhupwagAfDKQ3Q1594v0c2bm6tx+\n5Y8j+6ayrR5onThp8s7dzkZjuqAAmuBnqC7c0iwgtzSA0rWzjfGRW3ZadDu4AoNYo2rfS4v7orSh\n05UA2r0pDbsTm29KRottBNyJ0wpJ9KhD7f6U0ikNWffIFBz60zVUW52ow4UcUN6EPcx44WsbgOmd\nua7TT5Bd24KHnFKnLlZFSN4koluLdueRWvp14swweG9DXoxldHlTjYtzGoo25qzEvwtUxas2jRPQ\n5CNqkLVsYoYzUzdQA3dSFqBBmnqaBhuqhriCXTpVIzxUz+Fl03aSPI9QTypW2/dz0qKNw3SvOPZR\nMqin8VLKRcs3O4Cuk0w/MDjt1NBtHY6O2IIHY1pxgFaETIRwMkjtVSUEk4570MlFW5bap6dKzWm8\n1tqH8aY+hp2FvGoGayNevVt7/ap4xzUvYjqTLtvLPcvJxSaVcyWsxTnFZlnT2t15xHmCtOBYwQy4\nB9q7cPO+jPPxFO2qLEj5HWo42+aus4HpoX4W4FTF+KlotbHII9SFuK0MUNZqiLUDE3UbqBBupwag\nBc1DefPbyD/ZND2KjujyPWlKzuPesRZjHJXms9lMuw3StjnmphKDSLTJ7OfE3JrpbO4GQc9qlnRA\n3LO82k5NbFvdADkjBoCSHyXIIIzgVQvdRigT7wzjgUzO1jHknlvG7qnp61etYFQDIpCZoqVijzXn\n3iC8EmsOuaCGb/heR/s0ijkVv6fbxy3QMg5xmsnuX0Ldzut3+UYTPWk+2GJSe+M1pFtamcldalmx\n1eO4XaThhWnC+TXqR2PHqL3maUJ4qRjxSEjj42qXdxVmaGs1MJoATfSbqBAG5p6mgAzTJTmNvpQU\ntzzHXY83D/U1zF5FhjgV5r3Pa6FMsV5HWnLe7RhqBRdmTwagN2d2K2rPU1C5LAnPrUs6Iysbdrq6\nf3gK0BrUKj/WClY05iM6xLOcQAj3NT29uznfKSzHuadzNu7NSBFjHNSm5VO9IRnajqoWMhTzXFtA\nbvUfMduSeg702Qz0rS7FbTToQFwzjJqaGTFyfK5PQViyzUuFmuIdgGABya5u/vTaN5cnUHFUmLoZ\nzyskwlgJweSK6zQdUEwVJeGr0aUrxPLxEfe0OrhPAqVjxWhznGRtUwatDK4jNxURbmkAm6jNABup\n6tQAFqhupNtu59qUnZFwV5JHnWsHdIx96w5lz15rzT2uhRmt85xWbcxMnUGmZlB0bdxmrNvFIcfM\n350mWjbs7YkDJY/jW5ZWW4jikWkdNp9mqYJFaJdEHHakUULu/VB1rLn1Ld/FgetMGYd/qWSQmSa0\n/AemS32pfa7piLeLkg9z6UmQtz0W7uQ2cZx0A9BVzR7cAea6j2rPqX0L99KRat5A6Dk1wOoKZ52a\nYfMORTYRLujiGWEq6/NWza2yKQVHNdOHerRy4laJo6TTnbbtb8KuM3Fdh5z3OJjbmpt3FaMxAtUZ\nagBN1GaQBzTwaAAms3VbjERUGsa07RsdeFpuUuY4jUjljWTKK4j02RE4IpJYFk6imQkVl0xWarsO\nmAEcUi0bNnZBR0rWtoguMCkUi21wI161mXuocEKaYXMS4u+pY/hVCSWSY4HT0pEmlouiSahdpEBl\nmOceleiwWcNjClvHgJH97Hc1EmVFFi3Czy7mwIl/WtJbjP7uLgd/apQ2VNVvtsBhiPzdK5S4nAuR\nnqOCaTGi9pcytPlU+XpmumtWII44rah8ZjiNIXRuWeNvvViQ/LXpJWPJbu7nCRvVkNxVsxBmqJmo\nEPiXca0YLMuOlJsuKuPlsSi5IrNuG8s4HWs5VEkbwoOTKsk+FJY4rC1K53k1xTk5O7PSpwVNWRzt\n4cms+WpKICtSLTETQj5q0YeBSGiys23pUguGxQMq3E59ayrm4x3yaAKiRtO2WPHcmhruKFxFajzZ\nScA44qRHoXhuMaLpxaUg6hcDLMf4F9KlhuDeXGASIl+8azZslYma68y48m1+7nFW5rtbRNhb5z1p\niMKbUg0zuW4A4rPgb7VdKXOMmpA7HRbMS7nUYiUda0lkQOBngVrS+JGdbWLRt2bAx5BqeQ/LXpnj\nPQ4GJ+ashuK0MhWaoWcA0AaOmASMK7jRNPWYBmHyiuepO2x10qfcv6vYxCzYqoGK4HVYVTJrmb5l\nc6oaM5TUJ8EgGsG4kLNUHT0M64OaqMMikSRsuKbnFMRLG3zVehOaGNE445NNlnVFpDMu6uie9Vo1\n8z5mOAOST2pDK91cNN+5tsrH3PrW54a06KxT7fdrlh/q1Pc+tJ6IUdZGvHPLezMcnBOWbsPap5r3\nylFtbdT1xUWNWzU0/Zbwlgfmx8zGsHWtRHmMqE59aAMyNifvHPc1f0gtPdqkY5JosJHeNci2tktY\neuPnNY+oXWZEVJNrZ9aun8SIq/CzodHuriIokhDIR1ronbKZr0o6o8ipoz//2Q==`;\n\n// data:image/jpeg;base64,\nexport const body = `\n/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAsICAoIBwsKCQoNDAsNERwSEQ8PESIZGhQcKSQrKigk\nJyctMkA3LTA9MCcnOEw5PUNFSElIKzZPVU5GVEBHSEX/2wBDAQwNDREPESESEiFFLicuRUVFRUVF\nRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUX/wAARCASwBLADASIA\nAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAEDAgQFBgf/xABDEAEAAgECBAMECQIDBgUFAQAA\nAQIDBBEFEiExE0FRBiJhcRQjMkJSgZGhsWLBJDNyFSVTY3OSNEPR4fAHFjWCokT/xAAYAQEAAwEA\nAAAAAAAAAAAAAAAAAQIDBP/EACARAQEBAQADAQEBAQEBAAAAAAABAhEDITFBEjJRIhP/2gAMAwEA\nAhEDEQA/APqYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAKNTq8OkxzfNkisQC8eb1XtRNbzXT4q7eU2nu0MntRq/D8StMccvW29ZmdvgjsTyvZjxOLj\n+s8WLxn8TFPXs6Oj9oct7c14rkxz22nrB2I49KOdTjelmszfmpMeUxv/AA28OqwZ4icWWtt/SUi4\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmdo3nsPNe0Pt\nFh09Z0+DNWL7+9O/7A3eJcZppsV5raI27esvH6jX5ddM25p79Ilo59VbUZOe2Tm/PeGvfPfT2iKR\nPLv1+DO678XmW/a97U6TtOyzTbTF538/T9WjTNecm9a7126tqk3rSYxY5ta1plRZqZNXGjyZcPXl\nmZmsx+qjBrsuO16xM7eXRt04JrdTltk5OWJnfaWf0a2lty5MdZnfzSn+WOHiOutFpjHa9e8bQ2fp\n+alYy462pk7zXbuxjPesbRS0f6ZZV1ET1tErzXFLHo+A+1ddZf6NrI8PJHa1vN6iJi0bxMTHwfOa\nzhzd61v1846utwniM6DUdb3nBaNrVmd9vjC/ZVePYirBqMWppz4rxaPgtEAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAItaK1m09ojcHnvarjM8P0vh49+a/eY8ng9D\nh1fGM1rxjtGPfvbzdbjuTJxHX48cTPNltM/KsS9Dw7S49Jp6UpHaGe2vjz1y9J7LYK13vHWe7bj2\nex1tvM80ekuxW3RnW3Vm6P5jRx8H0+OYmMcb+bapo8GKPdpC6bQwtdHU8JpWkdJ/JweL6e23iU67\nd4dubSqyVi9Zi0bwIs68XGp36TtEq7ZJmZmevzdbifCKWtbJinkt6eTgZPFw32t+sRurbWVzxs1y\nRv6T8V1NZNPtfq0seTm+Kevr+SZuxXjvaPiV8N4viycto9HseG6+uu08W6Rkj7UPmFck1tE1nlmP\nLd3eA8V8HVVi1pjq6Ma/pnqce/ERMTETHaUrKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAADW19+TQ5p/p2bLS4v04Zmt5VjeQeJ4bjnLqsupv+Ka1+ERLv4reTmcNxcuC\nvy3l0qdI2hlr66sT02ot0ZV7qqrInruzrVZLGSZ37JjqgYTG0K5lbaFVhDT1Ub456RPweY4hixWi\neSdpjvD1eWejz3FNHWYtkpvFo9EIseb3tS3SerOms22rfpPqZKzvvHSYUz70TExG6Gdbs2rljeJ/\nMx5L0vEzPaelnOi98c9J2bFNTFpit47+a+PVUvx9T9nOIfT+GV5p3yY/ds67wvsXqpxau+G09Lx+\nr3TqrEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADV4ljnLw3U0jvO\nO0fs2lWqyUw6XLkyfYrWZkHldBEV09eveG3Fq1mI3jd4vPrOIaid8G9MP3Y38k6fNrt/rMk9Ou8s\ntfXXn49rGWInuy8SO/k5Gl1E3rG/fzbOe94wTy99mbRvTrMOOvNfJWsesywniukrG/jU6fF43WYN\nTmtEeJtEQ06aSmK2+bNtEd+qfSO17unF9Hmvy1y13XWyVmN4tExLxVK8PmNq5NrT58zawam+m/yc\n0Xj8NpRYSvQZ7xEOdqI3rPozxayNRXe0ct/ON03jmrKB5nV4q1yTO20Obmv4c+cx8HoeI6WZpNoj\nq83niYmYscU0r8aJ6T1n49zeJ+Meqm1drb9J+Kd5p136StGVem9l9TbHxLDFp7W7+sS+q1nesT6w\n+PcAzVjiGHftzQ+v4f8AJpv6On8jH9ZgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAABp8VrW/C9TW0ztOO3b5Nxp8VmI4bn37TWYB8f1HFtTfUfR9FWJmsdZ9I7MtJxDX5s\nd8ta1y0xzteaR2277rcuhycP12SceLxMeWNpjttHwlu8I0mfQ1y+D7k5YmJmY36T36Ka43z/AF1t\ncI1ds+qxVj7/AEej19PCw9HJ4NoK4OIU5Y35YmZdzVTGebVZabx5jJS+Tmns81rNLm1Wrzc9rVw4\nYibbem72mXTTS0w0M3BvEta1bWrM95ie5EanY87wXgNOL6XPfxraXLhra/W28bR/dzYzarBqJxRe\nbzE7Rt5vWU9n8mPHOGmS0Ypnea1naJb+k9ncNLR7u2y/WcxXO4TOoyUrN6zD0FaW5Y3hu49FiwUi\nKxCvLMR0hlW0jn6ukWw3iXjOJzbDlneOj3GaN6zDzfFOH+LE7SRGo83XNSZ2lbG2/WfdlvaT2cy6\nrNFInlrv1mfJ37cK4PwTTxOoidRm2+/2/KFuyMp47XB4LivXiunrH2b2iH2qn2K/J8x4fGDNxTSZ\n9Nh8OviRvTyfT6xtWI+DeXs9MNZubypASqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAOZx6/LoOWPvWiHTcf2hiZ0e8fc2mf1E5+vP/AEeuSd7RC2uKtI6QjHfeINTfwtPf\nJvty9WPfbt/lucP03gxfJf7d/wBoReYpm97zaNeLb4Ims9Nt94auDjem1Wo5PFi1onylS+1o7l8V\nbxvtupjDMdNkYtXS1+Stt+m63xImEJ4xjHER2ZxMUjeUTO3VRmydBbjLJqPi08mbeVOXJPq1sl5Q\nVbkz9+rRy35rxHqzmZlVEe/Ez5LRlW5iyfR6zffaIjq1OSNZps2a21rZInafSPJhxGMl9LStLRWM\nlorM/A4dkrWbYfLZC2W/7K6eubX6b4RzT+W76K8b7G6X62cu3Sten59nsm3j+OXz3/0ANGIAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0OIYfpOHPijvNNo+fdvtXJO18k/\n/OwPFYbz2ls3jx8VqW6xMdWPEdP9D4lkx/dt79flLLHbkxTPwY6nt2512ORTRzE2x4/dpE7cvkme\nE4IrW3hRMxO8THRtU1FKWtvtvK2upx22rzRCtXkqzh2jtF7ZbT122b01ndnpuWuP3Z3+Ky20qDVv\nfauzVy3mejZzNK8dVjqi87KLRLYtXruqvXzkQp7Qoid88R6rcl+WGlW0/Sa22mfhCZOq2x082ix6\njkm822pO8VrPdr4dNObVeDo8XW3uzMbzK+mvxT7szE27cvnu9j7PcNjSaXx8mOIzZevbrEeic5tN\n+SZnpt8J4fHD9HXHO3PPW0x/DeBtJxx29vaAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAKNRim9Z5e89Nl4DzXtVh5babURHrSf7f3ec1+qnDorWrvvt5Pccb0n0zhmWk\nRvevv1+cPE2rGTFNZU26PFfxwa5dVkjelI2772nZnX6bbrEUq3o0d678u8wmuDL2ittvVjXdneeK\ncGv4jpJ6U56+kS7+j118+GLXpakzHaWlp9NNY3tv+bbiYiNoQy1y30uyZJlrWmZnuym6q1iIJnop\nyW2Te8bdWnnypQqzZOadokiIpSZntWN5lrxki19vNRxrUeBwnNNd+fJEY6/OejXLn3Xe/wDp9wyn\nE8uo4lqqxblv7lJ26T6vpD5X7G8QycKzeBMbzMRM1/FH/wA/h9QwZ6ajDXLitvWzRgsAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeL45w+dDrZvWv1OWd4+E+j2jX\n12jx67TWw5Y6T2nzifU+rZ1y9eHwzDYxxEy18+DJodXfT5o96vafWPVbjyxDn1OOzHudbM0rt2UW\niI69mVtRXZq5tREb9VUoy2iIlRbJ0UX1VZ6btTLrI7V6yk62M2oisT1c7JmtkttVMUyZp6x0beDS\nRWOvdKijDimvWd3G9pNRMfRcNfvZOb9Hpb0itJeP47k/3hgjaZnbaP1XxWW3T0movbNS0W645nbf\n0nrMPpXs3xamoxdJiLbe/X1n8Uf3fKsOTw4jbaXo+EarJhtGTHMxeJ6xH7Sti9Zaj6x3HM4NxXFx\nDS1mtoi8dJrv2l011QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAGjxLhODieOIye7kr9m8d4eM4to9RwjPXFa0ZIvG9bR0fQXmPbDFvTTZPOJmEWS/V8bs9R43NxLL\nG8eFbePg1bajU5/s0l1ceKLx1hbjwRE9mOpx0y2uRTSZsm3PMw2aaKtIjo6kYo9EXpET0hVLXxYK\nxC6MZvyx1lFs0RHfaPiCnU12pLyHGNDbUajBekWma2npWN3p8+opa20e9LSyZLxExTlpM+vdOdcZ\na9tPS8MyUvFrzWlI6727u1pYxYrbVmb7x+TQx6au3Nqcl7/0rcmW9axGnwZJj1novmxnZXV0fFp4\nZxLBPgTGK8xzXr5fOH0bFlpmxVyY7Rato3iYfNuG2x56Wrqa8s2jz+7Lu8O12bS6jkwzN6THNNI6\ntvrN68Y4rxlx1vHa0bskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAA4XtTTm0OKfTJ/aXdcL2pyRGjwU362yb7fkJz9eTxxyZJjyltRXzUZK7TFtl9Lbwy06YzrHwa+\nfJFd/wCVt8m0bQ0eS2qzcm+1K/an+zNZFL5M1pjFXeI72ky48eGnPkvNp27+TPU6nHpMfLXaIjpE\nerk5dRMxOfN1mPeisfshW1ne1a1577Y6x5R3U0zze31FOWI6ze0byU098kRlzbxM9qrMlPDpyRMR\nMd5Vt/Ihp5898mWZm1pjftE91uCt7fCI7dWeHDEW3t723l6rslqxWZnasR+SYhFbzhnfxJ2jyeq9\nlcGXWZcmW0zWKxHLaI7794eJx5fpfEKabT8t8l5isddo3l9S4VjrwrRUwzSJt3tav3pdOL6Y6dXD\nj8HFWm+/KsU4NRXPvtWazHquWVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAa+fXYNP9u8b+kdZBsDkZOO135cWOZn4y5Wu4xqctbe9y19Kp4njt6vi+PDm8DFMWybbzPlV\n5PiGtz67UxbNbeKTtWIjaIXYpnwuaftT5tXJT3vmi1pMsrU5qIrG1V1a+5DCa7b9GFbRr5J6Wnbt\nCu+Wmk0m8956z8ZWZNorbfzcbX5rZslazPux3hUt41NTntktObJ13+zX1bek01r4/HzVm0bxPXy/\n+bNfDgjVa2uOY92kdfg6ufJOKvLXtttVVSqbcta2vM7zXtHpLQy5ZtMd+vWd+7Zy3mdJHXra3f0c\nvUarw7zFY5rT2hH1Lavnrgx81p3U49Pk4nE5L35MO/StfNRXR5tXnrS8W67WvfyiPSPi7uLHFK1p\njrtSsbR5Lc4RzsXBaYreP4l45esRD2HD9fnw6evvWvO3Tfr0aGk0U55ra0TFInv6uzgrXFXlx0i0\n77RPlC83Yj+JW7oddqr6vHzTTw9/f6dod+L1t9m0T8pcbFSmPHER3892W0zPuz+jSbVvidkcqmfP\nSel7bekrI4n4dZnPWIrHeYnZee2Wpy8dEaml4npNZblw5qzb8M9JbYgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAABEzFYmZnaI7yCXL1XGa0jJXT0571nbee27DiXEprp8nhbxG20W8\n5cbD0ikfnKO+urTPvjoZdXqctdsmTaPSvRpWmsdZ6yztfaGplvv3lWW1tyRlz1x0vkn7Vo5atTNe\nY0+1o79V2KsZsvX7Ne5mwxnyTNvsx2iGneM/rCdRSuOsTasTt5kRFtpjqmOH4t4nk7estiMNa97R\nHwhna0iuKTEdmGWa4672nZtRele1N59Zlq6vLOSsYorEc07qcW65euzRvtXvPZy52naZ7ujr6fXV\nrWdukREK8+njHgmZmPc67bq6ivVWhxxgxZLztNrT1mZ/SP4VZs0zaOvfp84WUtNsXLvtv3699+rU\nz7+Jtt5qURqMnPpctaR1rMSw4ZoK57eNk6xHaJRh97Ltt7lo5Z+L1HAPZvVauZ2nFTSzMTzeJEz8\nto6xPfvsZntPZ9rXxabmxzefdrv0j1dXh/BcmstW1qxTHHasR3+b0GPhGl+kWmd64dNEVjf73T7X\ny8vy+Ddx6O3iRakxTH5RXrMw1/lX+3Itw2MFIraN48qRHdZi0cUjmmPen9noox1iO0fNzdXEYrTt\nstcmd9aX0bJ+HePmiKTitO8TMLZ1cVjrMfqpz6ys4pjfrPRWZ9rXXptUit6zO+23VyaRHEc05L1/\nw9J9ys/en1ljqdVbwYw452tlnl3jyjzbmmiMeKtYjpEbLeTXPUU8ee/+qjJpsV5rbkrFqzE1tEbT\nDpYNbW21Mnu29fKWna0KbqTdjXXjld0cvQ63ltGHNPSfs2n+HUbS9c2s2UASqAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAOVxPWe99HpP8ArmP4b+r1EabT3yT3iOkesvMVtN7za07zad5l\nXV5GmM9vVfEstvDx0jtaVVMlq+UJ18b5cMRvPeSuK87bUt+i2Z3PtG7zXpjkzXt6R+TXyTMzvM7t\nydHqZ+zhv1+Cv/ZuqvPTHMfOYaTMil1a1K2vHSLTELq2v+KWzThGo84rH5rq8JzedqR+ZeI7WnOS\n34pYTafWXR/2Pln/AMyrKOCWnvmiPyR6O1y9585lhWJvl557Q6eo4T4dYiMvW3b3UanhldHpJtGX\ne09unmjsT7eb1l4trI2t0hsZfrdNO0bzy+nzU20/+NmkzO9esz+TZxWis9dttvPv+Tn21jjaW8zn\n26bTG3mp1M/Wzv3t0jyWXiKZJmsTERaZhXXDbNl8WaztWenxZLstPp5pau8frDtVrNMM5cfTfpMf\n3aunxxbes9d/R09Dp8ebJi09ptFr3jtt2WyrW9wy1Jx132mK+Xq9PotT0iIU19ntLtExa3T47T+q\n6nBaYvsZstZ+cT/LeMnUi0TXffo1s2m8Ws2/OIMWk5Jib5L328rS2t94Sh5TV4ppklpW6PT6rh+P\nNbebTHyas8E081mZy5P2W6OFhjxNTE/hr/LoRO0Kvo9dPqctKzMxEx1la5t3tdnjnMs4noievcrO\nyZjeFF1OSnNV0OG62cn1GWffj7Mz5w05joovzY7xes7TE7w0xrjPeex6Ua+j1UarBFu1o6Wj0lsN\n3JfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACrU5o0+nvlt92P3BxuM6nxNRGCs+7Tv8\n2hToxm1r3m9utrTvMsonqyt7XTmcja0u3O6FMfi5t/u0/lzdJM81p9O3zdvHTwsUR5+bfPqOfX1h\ndqV+3O7bs1+T31oqmI3TEM4rvCdkDGIIhlFd2daboS0NXG2bD6bufxXU1vlmu/u4us/N0+L1tTSx\nkr9qk7w89j1FNZMV3jxLzvaJ8mer+LSOZqK2xZotbvljfr/89U453rXt9lse081xZtNjx7TGKu0t\nDHlrevSevaN5Y6+tJ8c7VRNMt63n3ub+6/R54rERMztDYy4a5omclYmfxKcenrjtHLvtPrCnVmdb\neFe3JXmjy6eS/DrMuLVYsta9Mdt++6qLxO+0dEc8UmInr18iUfReHcXrqccb9Z27Q61Lb13eJ9nc\n1Z35rTvE9avY4bTkpG8xEfB05vYxqybc07R281naGMREdoT5JQqy9mply7Q3bV3iXG1eXw7TWSka\nc258t7+tpT5/BjT7MfHqndz12Z+M4lMMKyziUJJiN1WSu9fku23RaOgKNJqbaTU1t9yelo+D0cTE\nxEx1iXmM1Nt3W4PqvFweDaffx9vjDbGvxz+TP66QDRiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAOJxzU73rp6z296zsZMkYsdr2naKxvLyObNOfNfJbvad1dXkaeOdpvsc2yuZVzfbfqybutwu\ns5s8R92J3dvJb3tnO4HSMegtmt3nfZvYp8SZl0z45NfSK7onH1bNcfRFqnUKJr0Y7dVtq7prjEsK\n0XVpEM6028mW20IHK41aPo3J6zs4ODhdcvPnvExFevNXpMOrxi/PlrTee7PLX6Pwa09uaNlKtHg9\ndM3z5d7ReOu02nu0JzZMfblrv5R5uvrcdImZ26T1mYhxs1Os7RH93PZ7axuafNfLitvbaYU3yZYt\nPXs9NwHhui1HBa5LVicsb81onrEuVqNNSuS8Y67dZ6xPZa59Il9uX41vEitImZme3q2Kxbxora0T\nMd/ROSa4Ztkj7c9OafL5LuGYubmyX3iu/TfbdSfVnpvZLT/XZK233+Mbbva1xRXyiPk8pwbH4N6T\nadq5a71n0tD1WDL4tPe6Xr0tDpz8YVnJHWEXYxbqlBedoef4tW0XraO09HdyztSZcbUz43C+ee9b\nSVMaeOfqq7+jGckQ1Yz7+7v2RN/WXPXZPjci2+2yyJaVMuy+uSJlA2d+pNoVRbeDcSxyTE+TDDlt\npdRXLTynrHrDOyiyZeVFnY9TjvXJjres71tG8MnJ4Nqt4tp7T1jrV1nRL1x2cvABKAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAHJ49qfD09cNZ97JPX5PPw2uI6j6Vrsl/ux7tfk1mWr7dOM8iLdm\nvfebREefRsWldw7SxqNbWbR7lPesrn3Vteo7dYjDpMGCvfbeXQ0uLlxRLRxROfUc34p6fCHYrXlr\nEejqrjY8uzCYW7MZjdVKqK9VlaxCYrsnYExBMRMJRPZA8/xPHtmpP9W2xx76vhWOInvt/C7ike7N\nvwzE9kcapGfhlevTaFbFo8RqJ5vy8/RoW09ek0msxHfp3dzNoLzp4zUmZpMbT8HJyYJi20X2n0lh\nZY1li/RaidBF4w2mK3jrHaFGp1lN+tptPp5IjBkid5mIp16TKu0abBPv33vPlM7z+iPdFNcWXU5I\ntkrNce/b1W5db1nTaf3ax9q0fxDW1ebNk2phty1mOu09VOm8W19orEz23j1TwfSeERFuEYMddptW\nd43dvBn21eKJ75KbW+cf/JcTgMxXTb3nbljz+TpcPmc2uyZO1KRtVtGVdi0bx07qJnllsRO6rNTe\nN4XVamsy8mnvPwc3R2jPwe8TPbdlxXNOPSZfhWWpwO85OFzv57qrODkzeHntSe8Sn6Rv0a3EZ218\n8nXekfr1a0ZLVnqx19dWb6demXybOO7lYMvNMdW9S/VVLo0us7tPHdtUtEwJiZU3jq2Jhham8CVG\nPNODNTJXvWd3qcWSubFXJWd4tG8PK3pPd1OB6veLaa89Y61/u2xfxh5c/rsgNHOAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAANLimq+i6O0xPv392rdeZ4rq/pOqnlnelOkIt5F8Z7Wj27I2I6sb25YY\nV1ImY3dbQ08LRc23vZp2j5OJG+XJWle9p2h6HHtbJXFT7OOIpX+7TxT31j5rycdTh+Dpz+XaG/sw\nw18PHWseULN2trBE9UcrJKBhFU7JAQi0dEomegNDUYovM7x3jb5tO1ZvpbaTLtzRExWfWPJ08kbT\nEx5NXWYYyV5omYtHWJieyeDzuizfRs19Jn6TM7Ru1uMcJxZqTkw+5f4ebqa7SV1MR4tdrx2vEfy1\naxqsNOTLjnLXytVXi3Xj8+nmsxTLM16d5npPyUzpekTtSK+U7vS6vQ/SYmK1vWPS1HOn2dvvvvE/\ntDO5XlcO+LbfHSd/W3o6/BdDOXPTnj3Kz38rS6Wm4FNrRyRzTH3p6RH/AKvR8L4dXSzE3jmtHn5I\nmbfqLV+m4dbLSsZInHjr3iI6zLpYaxS01rHuxHRHiT9mv6s67Vj1aqL6326MrWiYa+/Q54BxPaGe\nXRZpj8MquB4+Xg8zPnB7SX30to379GxpK1xcHiKz5IS8xr8PLPixH2bftLTy05o6dHYyVjLhy0t1\nizjZa3pMVv3iO/qz1G2L+NbSajbNyW7xLsY8kTDz+fJXFqKZN4iZnafi6WHL0iYlStI7OO+7axW2\ncrFl7dW9jvE9ULN+J3ZbdFGOy+AYWpEqN7afNXLj+1Wd23KrJVMvCzseh0+auow1yU7WhY4fCdV4\nOadPefcvPuz6S7jol649Tl4AJVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV581NPhtkvO0R+4NPi2\nr8DB4dJ9+/7Q83Po2NTqLanNbLfvPaPSFDHV66sZ5ET0hRknyW2lTtMyouz0c8usx2n7s7vScKwx\nzc1vu/y85p+maJh6Th+SOWeveXR4/wDLm8v+nX5mUWa9bbrInolmu5jdTNkxYFk2Isr3TuCzeGMz\n+THdEyDDJO9Ja823rt2XWnya946pGvktDXta0ztWu/ybvLE9dkcoOf4GbJPWK1j49VmLh9JtE33v\nMevb9G7WsW8l1ccREISophiJ2jpDYpijbaOjOuOJ8ujOdqxsgVcsUjaETYvbaFFrgu5lVsm0yUtu\nryg43H5m+GIj1XcJzePoL4pnrWGtxmfchr8JvfHS1622if3QljzTTLes+qrNjrkiYtCzPMxnm095\nYZJ6boS5teB49Tqscza97VtvWvlv8V/FOF34RrIxTM2xXjelp/eHoeA6XnzReY3ivX/0dfivDcfE\n9HbDbaLx1pb0lOs+jO7K8Lis3cN+0NKcd9PmthzV5clJ2mF9J9GHHVL108dm1SznYr/Ft0tuhLb8\nmNohFbMhLWy0mJ3rPXvDvcO1karBG8/WV6Wj+7kWrvDDBlvpdRGSnbzj1hpjX4z8mOx6UYYstc2O\nuSk71tG7Ns5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZ2jeXneJ62dVl5KT9VTt8Z9W9xbWclPo+O\nfft9qfSHEU1pv48ftYST23ZTDC/p0YtlVuvVjMbM5+LCZjYGWGdrTPxiHY4ffaf3cjTxz1v6xMS6\nOlty2iXVj/Dk8n+ndrkhnGRo1v8AFdW3RCrZ5uiYsqrboncSu508yjmZRYQt50TfowYTbYGVrKrT\nuTZjvukQnYhMIGVY2ZxPVWyrHVCWzXpVXkt3TE7Va+W4K7X3jv1auTNy3jdba0RZpamfroQN7Hk3\n6wr1GTaN2OOJiu6Mu98NvgDi8Wy74d/yZ8PiPAiO2zU4nb6qIn1bugjfFE/ASp1ke9u15mbbRDZ1\nMb823kx0Ontn1OOkedoJCvT8I03gaKsz9q/WW+isRWsVjtHRKyrhe0XCfpWL6Vgr9fjjrEfeh5fF\nfeH0V5Dj3DPoOo+k4a/U5J6xH3ZZ7z3228evytOk7NvFbo0cdols47bSybt7HbddHVqUs2aW3Qnq\nxVeu8LILR3SlZw3V/R8nhXn6u0/pLuPMXjeHT4Zruf6jLPvR9mZ8/g1xrvpz+TH7HUAaMAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAABRq9VXSYJyW79qx6yvmdo3l5viGs+maqYrO+OnSvx+KLeLZz2te1rZL2v\ned7WneZYWnZl5K72YV1xEyxmeqJljzIEWlVkszvbZp5soN3h2SJz3pP3odCnuWmPRxuERfJrZmtZ\nmtY96fR28kbX3dXj/wAuTyf6bmK+9YX1s0cNtm3Sd4LFY2K23W1s16StiUJW7bp22RW3RluBuruz\nmWEgrmCGWyNkoExKE1QlPmsqRDKeyBjaejWy2W3ttDUyz1QKslvehVqKTNosyyTvELabXptIJpaP\nB39Ia2mz+JGpr51jdZefDx2hzuHZObNq58poJaGtjxJ2+LoaKP8ADRPo5+T3skx5OhpOmC0fBNQ0\n5yTbn+bt8A0u9raiY6RHLVwY62mI6zMvaaHBGn0mPHt1iN5+aYVsACBXqMFNTgviyxvW0bSsAeE1\nmkvw7V2w5Ote9besJx2er4rw2nEdNNekZa9aW9JeQjnxZLYskTW9Z2mJY7zz26fHrrdpbZsY7NGt\nmxjvso1b9NmUwpx33XRO4K7VUTE1nmrvEx1bVo2VWiJE/XY4frY1WPlt0y17x6/FuPM0m+HJGTHO\n1qu9pNVXVYt46Xj7VfRtnXXL5MfzexsALsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHM4jxOMFJphmJv529Dq\nZLfjDjPEIx450+K3v2+1MeUOHSOWFc3nJkmZnf4yujpVlqunOeFpV2nctLCZUXRM7MJtsWlRkv3Q\nky5NmpWt9RnrixVm17TtEQnJabXisRMzPSIew9n+CRoccajURvqLx5/chfOest642OGcIpoOG2w7\nROW9d72+LQvXevyejcPUU5M+SvpLeOataraw2a0dLbLqTtK1G3Es4lVWWUSoldFtmcXUbpidgXzK\nGEW3TuCUSncnsDFMMLSms9EC6J6FpVzbZE5ALy0809ZbFr9GtfrEoFMzuuwz0Ueey3HbaBLDXe7i\ntMOfwWnP9I+NZbuttvhs1uBRtXPb4SDm3iIvf57N7Dbl0VrS5+XrltEd+Z1Jx7cNms9N4TURRw3T\n+PrcO3WszEvZOD7P6aYiMlvu16S7y1QAIAABxOPcLnUY/pWCv1tI96I+9DtgmXl68Biy7/NtUu3+\nO8HnFa2s0tfd75KR5fFyMWTdhrPHVnX9R0cd21S3Rzsdm1iuqs256wrmGcT0RYSx5d047X02SMmO\nesd49YRE9WcdSXhZ2O1p89NRji9J+cei1xMc3wXi+KZj1j1dTTaqmor06WjvWW+ddcu8XK8BZmAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAMMmWmKu952UZ9XFZmuP3revlDTtzWnmvO8q3XGmfHb9ZanV3yxtWeWn7y4es\nvPNtDqZJ6Ts5mppvdl/XXRMyfGvSNlu/RVvtOzLfoipLT1VTKbSpvfogRkvtDVyZOhkyvQcA4Dzz\nXV6yvTvTHMfvK+c9U3rkW+zvA/D21urr789cdZ8vi9KDb45rejl8Rry6iJ/FV1HP4vXbBTJEfYt1\n+UpiHM295bXsqrO9l8QkZ0lZEqqLeyBZHZLGvZkhIndADKJ3TMoqWQMZ6pjsxll2jsCLSrmU2lFY\n36gieyu0LJk3jbsga0wdqzK20QpyztQGprL/AFMrOE05NLkt6qdVWZxNrSe5o9vWBLiUjnzXn0vL\nq555dHt8HOwV928/1z/LpzXxbYccRvzTB+jucOwxh0dI22mY3ltIrHLWIjyjZKyoAAAAACJiJjaY\n3iXleM8InR5J1GniZw2n3oj7s/8Ao9Wi9a3rNbRE1mNpifNFnVs65XhcWTdt47bnFuF24dm8TFEz\np7T0/pn0a+HJux1OOrOux08d1ndqY7tillVkzExLOk7yd4YxGwluViJhE45raL0na0dtlWO0+bZr\n1TKi+2zptZGTamT3b/tLacvJjiY3XaTWdYxZZ6/dtPm1zrv1z78fPcbwC7EAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhkyV\nxUm152iAZWtFazNp2iGhm1Vss8uP3aevnKrNntqLdelI7VRHRnrX/HRjx/tZREVjZXeybW6KbWZt\npCZ6S08tN7Nmbb7zCrJtyoS5145bSx5mWafelr3tsKmS/o08uXyhlly7RPV2+AcBnPNdZrK+53pS\nfP4ytnPVda4y4BwHxOXV6uvu96Unz+MvVxG0bQRG0bR2G0nHLb2gCUDX12LxtFmpHeazt82wT1gH\nmMN4tWs+rcr2aEV8DU5sM/cvO3yb+O0csLUTSdrLphRE8tlkZI7Atr2ZMazDJVKTYSCawi7Ksq7z\n1QERvLK3ZGPrKbyCrbdnMcsbeaa18/RhvvM7oGEwTG0JmYYTIML22a2e28xELM19oURPNO4lOem+\nn3ZY5+prVnMc2GYU4/L4A0a15cNf6rz/AC6fC6+NxCPOuOu/5tHJTbHj+F5/l1+BYumXJMd9o3/d\nMRXYASgAAAAAAABhlxUz4rY8lYtS0bTEvH8R4ffhmo6bzhtPu29Pg9mq1Gnx6rDbFmrzVsizq2df\nzXkMWTeIbNL7tbXaHLwzUctvexWn3bmPL8WFnHVL326VZ91MfFVjvvVlz79kLrcf2m7j7bNHH3bl\nJ2SirLQoy4t1++7G0dBC/RanxI8PJPv18/WG241+alovSdrV6w6mDNGfFF4/OPSW2b1zeTPL1aAs\nzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAVZ9RXBTe3WZ7R6iZOpzZq4ac1p+UermZMl89+a/byj0Ra9815ted59PQ32hlrXXRjH\nDpCLX6ML5NlNsm/ZRqstfdXzbsZt06sLZNvNB1Za8RDWyZdo7q8udq5Mu/mIMt4md2lmy7JzZuWJ\ndHgfBL8RvGo1MTXTxPSPx/8AstJ1XWpIs4BwSdbeNVqq/URPu0n73/s9hEREbRG0QUpWlYrWIisR\ntER5JbSccur2gCUAAAAPM8Sry8Uyz67fwuxbzVPGsE49XGbvF42V4M0TEL33ERnktsxpk3sumK2j\nadmFdPFZ33VS2Mdui2J3UU6LYlFSsN2O5NkCyJ6K7T1TEsbAsxdpReerKkTFGMxvYEz0rsqtbbpC\nb2VT1QEzuwtbaGUxspuJU3neWdKoiu8rq12gCI92YatLcublnzbEz1aOptyZqTuDHLfxN6R0+t5X\nqdJhjBp6UiPLeXl9NSMnEKxHa1+bb8nrlvxUAAAAAAAAAAABTqtNj1eC2LLXeto/R43VabJw/VTh\nydY+7b1h7ho8V4dXiGlmvbJXrS3xRZ1fGv5rzeHN02bEW3cys3xZJx5ImtqztMS3MeTeGFjqlb2O\n8btql3NpbZtYsnSBLeiWfdTjtutid+ghherHS5p0+f3vsX6T8Fkw181d4lMvEWdnHaGnw/UeNh5L\nT7+PpPxbjdyWcvAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAo1Oprgr63ntAmTqdRqK4K9etp7Q5d7Wy2m953lNrWyWm953mVd77R0\nZa1104xxlN9lV8qnJl2a9s3xUXX2ybsJyRDWtl3YWydEC+2VRkzeW6q+T4tbJm+KRdfK1cmWZnlr\nvNp7RC/R6HU8SycmCk7ed57Q9ZwvgOn4fEXtHi5/O9o7fJaZ6z1uRyOEezVstq6jiEbV71xevzer\nrWtKxWsRFY6REeSRrJxz22gCUAAAAAANbX6aNVpL0npMRvWfSXlKamsRMVvXm+EvZXjmpaPWHzfL\noNRjzXicfWJ8phfPxFejx72x7xMzK+sXiNoiXlq+Pi6fWV/VfTNqfLJl/WTg9Pji8R70LqvMV1Gq\nj/zcv6yz+lanzzZP1lWpelTET6S81Gp1P/Gyf90s412rjtnyfqql6asREdWM9+jz9eJ6yP8Az7uh\nodZqMt458tpB1JvEViI3/RhzRt13/R1MNaziiZiJn5K9ZNceKZiIiQcu/WekT+iYrWI3lzdTrs+8\n8uW0fJzcur1Np/zsn6g79phVaIeetqNR/wAXJ/3SwnUaj/i5P+6UD0ldonum161h5mNRqP8Ai5P1\nlNtRqJjacuT9Qd22WN5aGeZyZd/KHJy59RHbLf8AVq31Gp/4uT9ZEvS8Lr/vSs2npzRtL1z53wK+\noza/HW2XJNd99pmX0Rb8VAAAAAAAAAAAAAAcHj/C5yV+l4I9+v24jzj1cLFk8nu5jeNpeW41wmdL\nknU6ev1Vp96sfdn/ANFdTrXG+eq1q5F2LLtbZoY8m8d11bbSydErsYsm+zZrO/zcnBm226uhiyRK\nEtrvCrJDOJTeu8A1MWX6Lqq5N/dnpb5O5ExMbx2cPNTeJb/DM/iYPDtPvY+nzhri/jDy5/W6AuwA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n"], + "sourcesContent": ["import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){global.performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_MEMORY/65536,\"maximum\":2147483648/65536,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){if(ENVIRONMENT_IS_PTHREAD)return;runtimeExited=true}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmTable=Module[\"asm\"][\"F\"];wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var ASM_CONSTS={8991:function($0,$1){setTimeout(function(){__emscripten_do_dispatch_to_thread($0,$1)},0)}};function initPthreadsJS(){PThread.initRuntime()}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function killThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! killThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in killThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cancelThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cancelThread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function cleanupThread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! cleanupThread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in cleanupThread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={unusedWorkers:[],runningWorkers:[],initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=tb;var headPtr=tb+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=_malloc(512);for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),tb+100>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tb+40>>2,tb);__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(tb)},initWorker:function(){},pthreads:{},threadExitHandlers:[],setThreadStatus:function(){},runExitHandlers:function(){while(PThread.threadExitHandlers.length>0){PThread.threadExitHandlers.pop()()}if(ENVIRONMENT_IS_PTHREAD&&_pthread_self())___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+56>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();var tb=_pthread_self();Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);_emscripten_futex_wake(tb+0,2147483647);__emscripten_thread_init(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+100>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){PThread.runWithoutMainThreadQueuedCalls(function(){delete PThread.pthreads[worker.pthread.threadInfoStruct];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined})},runWithoutMainThreadQueuedCalls:function(func){GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=0;try{func()}finally{GROWABLE_HEAP_I32()[__emscripten_allow_main_runtime_queued_calls>>2]=1}},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){spawnThread(e.data)}else if(cmd===\"cleanupThread\"){cleanupThread(d[\"thread\"])}else if(cmd===\"killThread\"){killThread(d[\"thread\"])}else if(cmd===\"cancelThread\"){cancelThread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.threadInfoStruct+64>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"exitProcess\"){try{exit(d[\"returnCode\"])}catch(e){if(e instanceof ExitStatus)return;throw e}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg)}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(!ENVIRONMENT_IS_WEB){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}var tNow=performance.now();var tEnd=tNow+timeout;var lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr);while(1){tNow=performance.now();if(tNow>tEnd){lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);return-73}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,0);if(lastAddr==0){break}_emscripten_main_thread_process_queued_calls();if(Atomics.load(GROWABLE_HEAP_I32(),addr>>2)!=val){return-6}lastAddr=Atomics.exchange(GROWABLE_HEAP_I32(),__emscripten_main_thread_futex>>2,addr)}return 0}}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){if(ENVIRONMENT_IS_NODE)return require(\"os\").cpus().length;return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>=2;while(ch=GROWABLE_HEAP_U8()[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?GROWABLE_HEAP_F64()[buf++>>1]:GROWABLE_HEAP_I32()[buf]);++buf}return readAsmConstArgsArray}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;__emscripten_call_on_thread(0,targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;__emscripten_call_on_thread(0,targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){}function _emscripten_set_thread_name(threadId,name){}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension(\"WEBGL_multi_draw\"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(ext.indexOf(\"lose_context\")<0&&ext.indexOf(\"debug\")<0){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];var contextAttributes={\"alpha\":!!GROWABLE_HEAP_I32()[a+(0>>2)],\"depth\":!!GROWABLE_HEAP_I32()[a+(4>>2)],\"stencil\":!!GROWABLE_HEAP_I32()[a+(8>>2)],\"antialias\":!!GROWABLE_HEAP_I32()[a+(12>>2)],\"premultipliedAlpha\":!!GROWABLE_HEAP_I32()[a+(16>>2)],\"preserveDrawingBuffer\":!!GROWABLE_HEAP_I32()[a+(20>>2)],\"powerPreference\":__emscripten_webgl_power_preferences[powerPreference],\"failIfMajorPerformanceCaveat\":!!GROWABLE_HEAP_I32()[a+(28>>2)],majorVersion:GROWABLE_HEAP_I32()[a+(32>>2)],minorVersion:GROWABLE_HEAP_I32()[a+(36>>2)],enableExtensionsByDefault:GROWABLE_HEAP_I32()[a+(40>>2)],explicitSwapControl:GROWABLE_HEAP_I32()[a+(44>>2)],proxyContextToMainThread:GROWABLE_HEAP_I32()[a+(48>>2)],renderViaOffscreenBackBuffer:GROWABLE_HEAP_I32()[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.threadExitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){PThread.threadExitHandlers.push(function(){wasmTable.get(routine)(arg)})}function spawnThread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! spawnThread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(64>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(100>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(76>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(104+12>>2),threadParams.detached);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(172>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;if(attr&&attr!=-1){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(228);for(var i=0;i<228>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+152;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{spawnThread(threadParams)}return 0}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:case 80:case 81:case 79:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();var GLctx;var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"x\":__emscripten_notify_thread_queue,\"b\":_abort,\"y\":_emscripten_asm_const_int,\"j\":_emscripten_conditional_set_current_thread_status,\"c\":_emscripten_futex_wait,\"d\":_emscripten_futex_wake,\"f\":_emscripten_get_now,\"p\":_emscripten_memcpy_big,\"z\":_emscripten_num_logical_cores,\"u\":_emscripten_receive_on_main_thread_js,\"q\":_emscripten_resize_heap,\"v\":_emscripten_set_canvas_element_size,\"i\":_emscripten_set_current_thread_status,\"t\":_emscripten_set_thread_name,\"w\":_emscripten_webgl_create_context,\"m\":_fd_close,\"n\":_fd_seek,\"g\":_fd_write,\"o\":initPthreadsJS,\"a\":wasmMemory||Module[\"wasmMemory\"],\"k\":_pthread_cleanup_pop,\"l\":_pthread_cleanup_push,\"h\":_pthread_create,\"s\":_sysconf};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _pthread_self=Module[\"_pthread_self\"]=function(){return(_pthread_self=Module[\"_pthread_self\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var __emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=function(){return(__emscripten_do_dispatch_to_thread=Module[\"__emscripten_do_dispatch_to_thread\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var __emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=function(){return(__emscripten_call_on_thread=Module[\"__emscripten_call_on_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var __emscripten_thread_init=Module[\"__emscripten_thread_init\"]=function(){return(__emscripten_thread_init=Module[\"__emscripten_thread_init\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=function(){return(_emscripten_stack_set_limits=Module[\"_emscripten_stack_set_limits\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var __emscripten_allow_main_runtime_queued_calls=Module[\"__emscripten_allow_main_runtime_queued_calls\"]=9880;var __emscripten_main_thread_futex=Module[\"__emscripten_main_thread_futex\"]=11368;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);postMessage({\"cmd\":\"loaded\"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(!implicit){if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exitProcess\",\"returnCode\":status});throw new ExitStatus(status)}else{}}if(noExitRuntime){}else{PThread.terminateAllThreads();EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(ENVIRONMENT_IS_PTHREAD){noExitRuntime=false;PThread.initWorker()}run();\n\n\n return WasmBackendModuleThreadedSimd.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"g\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"m\"];removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}var asmLibraryArg={\"a\":_abort,\"d\":_emscripten_memcpy_big,\"e\":_emscripten_resize_heap,\"f\":_fd_close,\"c\":_fd_seek,\"b\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"h\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"i\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"j\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"k\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"l\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"n\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"o\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"p\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"q\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"r\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"s\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"t\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"u\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"v\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"w\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"x\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"y\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"z\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return WasmBackendModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\nelse if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\n// Detect the global object, even if operating in strict mode.\n// http://stackoverflow.com/a/14387057/265298\nvar global = (0, eval)('this'),\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};function moduleLoaded(){}this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance;moduleLoaded()})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.threadInfoStruct,0,0);var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"getNoExitRuntime\"]()){}else{Module[\"PThread\"].threadExit(ex.status)}}else{Module[\"PThread\"].threadExit(-2);throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport * as packageBundle from '@tensorflow/tfjs/package.json';\nimport * as packageCore from '@tensorflow/tfjs-core/package.json';\nimport * as packageData from '@tensorflow/tfjs-data/package.json';\nimport * as packageLayers from '@tensorflow/tfjs-layers/package.json';\nimport * as packageConverter from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs: packageBundle.version,\n 'tfjs-core': packageCore.version,\n 'tfjs-data': packageData.version,\n 'tfjs-layers': packageLayers.version,\n 'tfjs-converter': packageConverter.version,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json',\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n"], "mappings": "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HA,MAAM,cAA4B;IAChC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;AAGF,aAAW,kBAAkB,aAAa;AACxC,qBAAiB;;ACpOnB,MAAA,8BAAA;;;;;;;ACAA;;;;;;;;;AAaA,MAAI;AAKE,sBAAiB;AACrB,QAAI,YAAY,MAAM;AACpB,iBAAW,UAAU;;AAEvB,WAAO;;AAcH,6BAAyB;AAC7B,WAAO;;ACrCT;;;;;;;;;AAuBM,MAAA,iBAAA,cAA8B,MAAK;IACvC,YAAY,SAAgB;AAC1B,YAAM;AAEN,aAAO,eAAe,MAAM,eAAe;;;AAOzC,MAAA,eAAA,cAA4B,MAAK;IACrC,YAAY,SAAgB;AAC1B,YAAM;AAEN,aAAO,eAAe,MAAM,aAAa;;;AAOvC,MAAA,aAAA,cAA0B,MAAK;IACnC,YAAY,SAAgB;AAC1B,YAAM;AAEN,aAAO,eAAe,MAAM,WAAW;;;AAOrC,MAAA,sBAAA,cAAmC,MAAK;IAC5C,YAAY,SAAgB;AAC1B,YAAM;AAEN,aAAO,eAAe,MAAM,oBAAoB;;;AAO9C,MAAA,iBAAA,cAA8B,MAAK;IACvC,YAAY,SAAgB;AAC1B,YAAM;AAEN,aAAO,eAAe,MAAM,eAAe;;;ACvE/C;;;;;;;;;AAuBM,wBAAuB,OAAY,WAAiB;AACxD,QAAI,MAAM,QAAQ,QAAQ;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;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,iBAAiB;AAAA,IAClB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,iBAAiB;AAAA,IAClB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,iBAAiB;AAAA,IAClB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,iBAAiB;AAAA,IAClB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,iBAAiB;AAAA,IAClB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,iBAAiB;AAAA,IAClB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,iBAAiB;AAAA,IAClB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,kBAAkB;AAAA,IACnB,CAAC,gBAAgB;AAAA,IACjB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,kBAAkB;AAAA,IACnB,CAAC,iBAAiB;AAAA,IAClB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA,IACpB,CAAC,mBAAmB;AAAA;AAGf,MAAM,SAAS;AAAA,IACpB;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAG;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IACtJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAClJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAG;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IACrJ;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAC7I;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAClJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IACrJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IACpJ;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAG;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAG;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACnJ;AAAA,IAAK;AAAA,IAAI;AAAA,IAAG;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACnJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAG;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAC9I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IACtJ;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAClJ;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACnJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAG;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACrJ;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACpJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAClJ;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACnJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACnJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IACnJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAChJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAChJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC7I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAClJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC7I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IACnJ;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAG;AAAA,IAAI;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACpJ;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAClJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAClJ;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAI;AAAA,IAAI;AAAA,IAAG;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAChJ;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IACpJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IACrJ;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACpJ;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAG;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAC9I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IACpJ;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACrJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IACpJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IACpJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAC9I;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAG;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAI;AAAA,IAClJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAC9I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAChJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAChJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC9I;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAC/I;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAChJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAClJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACjJ;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAG;AAAA,IAAK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,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA,MACV,UAAU;AAAA;AAAA,IAEZ;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,UAAU;AAAA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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0Jb,MAAM,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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", "names": [] } diff --git a/dist/human.node-gpu.js.map b/dist/human.node-gpu.js.map index 8f0fe57d..89556e07 100644 --- a/dist/human.node-gpu.js.map +++ b/dist/human.node-gpu.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/tfjs/tf-node-gpu.ts", "../src/blazeface/facemesh.ts", "../src/posenet/keypoints.ts", "../src/human.ts", "../src/log.ts", "../src/sysinfo.ts", "../src/tfjs/backend.ts", "../src/blazeface/blazeface.ts", "../src/blazeface/facepipeline.ts", "../src/blazeface/box.ts", "../src/blazeface/util.ts", "../src/blazeface/coords.ts", "../src/age/age.ts", "../src/profile.ts", "../src/gender/gender.ts", "../src/emotion/emotion.ts", "../src/embedding/embedding.ts", "../src/posenet/posenet.ts", "../src/posenet/modelBase.ts", "../src/posenet/heapSort.ts", "../src/posenet/buildParts.ts", "../src/posenet/decodePose.ts", "../src/posenet/vectors.ts", "../src/posenet/decoders.ts", "../src/posenet/decodeMultiple.ts", "../src/posenet/util.ts", "../src/handpose/handpose.ts", "../src/handpose/handdetector.ts", "../src/handpose/box.ts", "../src/handpose/handpipeline.ts", "../src/handpose/util.ts", "../src/handpose/anchors.ts", "../src/blazepose/blazepose.ts", "../src/blazepose/annotations.ts", "../src/gesture/gesture.ts", "../src/image.ts", "../src/imagefx.js", "../config.js", "../src/sample.ts", "../src/draw.ts"], - "sourcesContent": ["export * from '@tensorflow/tfjs-node-gpu';\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json', // can be 'gender' or 'gender-ssrnet-imdb'\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n"], + "sourcesContent": ["export * from '@tensorflow/tfjs-node-gpu';\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json',\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAAA;AAAA,gBAAA,UAAc,YAAA;;;;ACAd;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAoB;AAKb,gCAAwB;AAAA,IAI7B,YAAY,WAAW,gBAAgB,WAAW,SAAQ;AACxD,WAAK,eAAe,IAAiB,SAAS,WAAW,gBAAgB;AACzE,WAAK,SAAS;AAAA;AAAA,UAGV,cAAc,OAAO,SAAQ;AACjC,YAAM,cAAc,MAAM,KAAK,aAAa,QAAQ,OAAO;AAC3D,YAAM,UAAqB;AAC3B,iBAAW,cAAe,eAAe,IAAK;AAC5C,YAAI,WAAW;AAAoB;AACnC,cAAM,OAAO,WAAW,SAAS,WAAW,OAAO,cAAc;AACjE,cAAM,UAAU,WAAW;AAC3B,cAAM,eAAc;AACpB,YAAI,QAAQ,KAAK,SAAS,GAAG;AAC3B,qBAAW,OAAO,OAAO,KAAY;AAAmB,yBAAY,OAAO,AAAO,iBAAiB,KAAK,IAAI,CAAC,UAAU,KAAK;AAAA;AAE9H,cAAM,SAAU,WAAW,MAAO,CAAE,SAAS,WAAW,IAAI,YAAY,aAAa,WAAW,IAAI,YAAa;AACjH,cAAM,OAAM,WAAW,MAAM;AAAA,UAC3B,KAAK,IAAI,GAAG,WAAW,IAAI,WAAW;AAAA,UACtC,KAAK,IAAI,GAAG,WAAW,IAAI,WAAW;AAAA,UACtC,KAAK,IAAI,MAAM,MAAM,IAAI,WAAW,IAAI,SAAS,MAAM,WAAW,IAAI,WAAW;AAAA,UACjF,KAAK,IAAI,MAAM,MAAM,IAAI,WAAW,IAAI,SAAS,MAAM,WAAW,IAAI,WAAW;AAAA,YAC/E;AACJ,gBAAQ,KAAK;AAAA,UACX,YAAY,WAAW,kBAAkB,WAAW,iBAAiB;AAAA,UACrE,eAAe,WAAW;AAAA,UAC1B,gBAAgB,WAAW;AAAA,UAC3B;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO,WAAW,QAAQ,AAAG,WAAM,WAAW,SAAS;AAAA;AAEzD,YAAI,WAAW;AAAQ,qBAAW,OAAO;AACzC,YAAI,WAAW;AAAO,qBAAW,MAAM;AAAA;AAEzC,aAAO;AAAA;AAAA;AAIX,MAAI,aAAa,CAAC,MAAM,MAAM;AAC9B,uBAA2B,SAAQ;AAEjC,iBAAa,MAAM,QAAQ,IAAI;AAAA,MAC5B,CAAC,WAAW,MAAM,QAAO,KAAK,UAAW,AAAU,KAAK,WAAU;AAAA,MAClE,CAAC,WAAW,MAAM,QAAO,KAAK,KAAK,UAAW,AAAG,oBAAe,QAAO,KAAK,KAAK,WAAW,CAAE,WAAW,QAAO,KAAK,KAAK,UAAU,SAAS,iBAAkB;AAAA,MAC/J,CAAC,WAAW,MAAM,QAAO,KAAK,KAAK,UAAW,AAAG,oBAAe,QAAO,KAAK,KAAK,WAAW,CAAE,WAAW,QAAO,KAAK,KAAK,UAAU,SAAS,iBAAkB;AAAA;AAElK,UAAM,WAAW,IAAI,kBAAkB,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI;AACpF,QAAI,QAAO,KAAK,KAAK,WAAW,QAAO;AAAO,UAAI,eAAe,QAAO,KAAK,KAAK,UAAU,MAAM,YAAY;AAC9G,QAAI,QAAO,KAAK,KAAK,WAAW,QAAO;AAAO,UAAI,eAAe,QAAO,KAAK,KAAK,UAAU,MAAM,YAAY;AAC9G,WAAO;AAAA;AAGT,WAAQ,gBAAuB;AAAA;;;ACjE/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,aAAY;AAAA,IACvB;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAY;AAAA,IAAW;AAAA,IAAY;AAAA,IACtD;AAAA,IAAiB;AAAA,IAAa;AAAA,IAAc;AAAA,IAAa;AAAA,IACzD;AAAA,IAAW;AAAA,IAAY;AAAA,IAAY;AAAA,IAAa;AAAA,IAAa;AAAA;AAGxD,MAAM,iBAAgB,SAAQ,UAAU;AAExC,MAAM,WAAU,SAAQ,UAAU,OAAO,CAAC,QAAQ,WAAW,MAAM;AACxE,WAAO,aAAa;AACpB,WAAO;AAAA,KACN;AAEH,MAAM,qBAAqB;AAAA,IACzB,CAAC,WAAW;AAAA,IAAiB,CAAC,aAAa;AAAA,IAC3C,CAAC,aAAa;AAAA,IAAc,CAAC,WAAW;AAAA,IACxC,CAAC,YAAY;AAAA,IAAc,CAAC,YAAY;AAAA,IACxC,CAAC,cAAc;AAAA,IAAkB,CAAC,cAAc;AAAA,IAChD,CAAC,YAAY;AAAA,IAAc,CAAC,aAAa;AAAA,IACzC,CAAC,gBAAgB;AAAA,IAAkB,CAAC,WAAW;AAAA;AAE1C,MAAM,uBAAuB,mBAAmB,IAAI,CAAC,CAAC,YAAY,gBAAiB,CAAC,SAAQ,aAAa,SAAQ;AAEjH,MAAM,aAAY;AAAA,IACvB,CAAC,QAAQ;AAAA,IAAY,CAAC,WAAW;AAAA,IAAY,CAAC,QAAQ;AAAA,IACtD,CAAC,YAAY;AAAA,IAAa,CAAC,QAAQ;AAAA,IACnC,CAAC,gBAAgB;AAAA,IAAc,CAAC,aAAa;AAAA,IAC7C,CAAC,gBAAgB;AAAA,IAAY,CAAC,WAAW;AAAA,IACzC,CAAC,YAAY;AAAA,IAAc,CAAC,QAAQ;AAAA,IACpC,CAAC,iBAAiB;AAAA,IAAe,CAAC,cAAc;AAAA,IAChD,CAAC,iBAAiB;AAAA,IAAa,CAAC,YAAY;AAAA,IAC5C,CAAC,aAAa;AAAA;AAGT,MAAM,eAAe;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;;;AC1DF;AAAA;AAAA;AAAA;;;ACCO,gBAAgB,KAAK;AAC1B,QAAM,KAAK,IAAI;AACf,QAAM,KAAK,GAAG,GAAG,WAAW,WAAW,SAAS,GAAG,QAAQ,GAAG,aAAa,WAAW,SAAS,GAAG,QAAQ,GAAG,aAAa,WAAW,SAAS,GAAG,QAAQ,GAAG,kBAAkB,WAAW,SAAS,GAAG;AAErM,MAAI;AAAK,YAAQ,IAAI,IAAI,UAAU,GAAG;AAAA;;;ACLjC,gBAAgB;AACrB,MAAI;AACJ,MAAI;AACJ,MAAI,OAAO,cAAc,aAAa;AACpC,UAAM,MAAM,UAAU,UAAU,MAAM;AACtC,QAAI,OAAO,IAAI,IAAI;AAEjB,iBAAW,IAAI,GAAG,MAAM,iBAAiB,GAAG,QAAQ,UAAU;AAC9D,cAAQ,UAAU,UAAU,QAAQ,IAAI,IAAI;AAC5C,UAAI,SAAS;AAAI,gBAAQ,MAAM,QAAQ,IAAI,IAAI;AAC/C,cAAQ,MAAM,QAAQ,OAAO;AAAA;AAAA,aAEtB,OAAO,YAAY,aAAa;AACzC,eAAW,GAAG,QAAQ,YAAY,QAAQ;AAC1C,YAAQ,UAAU,QAAQ;AAAA;AAE5B,SAAO,CAAE,UAAU;AAAA;;;AFdrB,WAAoB;;;AGDpB,SAAoB;AAEb,IAAM,SAAS;AAAA,EACpB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,IACT,OAAO;AAAA,IACP,WAAW;AAAA,IACX,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,IACvB,OAAO;AAAA,IACP,SAAS;AAAA,IACT,8BAA8B;AAAA,IAC9B,gBAAgB;AAAA;AAAA;AAIb,oBAAoB;AACzB,MAAI,CAAC,AAAG,eAAY,OAAO,OAAO;AAChC,QAAI,yBAAyB,OAAO;AACpC,QAAI;AAEF,aAAO,SAAU,OAAO,oBAAoB,cAAe,IAAI,gBAAgB,OAAO,OAAO,OAAO,UAAU,SAAS,cAAc;AAAA,aAC9H,KAAP;AACA,UAAI,gCAAgC;AACpC;AAAA;AAEF,QAAI;AAEF,aAAO,KAAK,OAAO,OAAO,WAAW,UAAU,OAAO;AAAA,aAC/C,KAAP;AACA,UAAI,qCAAqC;AACzC;AAAA;AAEF,QAAI;AACF,MAAG,mBAAgB,GAAG,OAAO;AAAA,aACtB,KAAP;AACA,UAAI,qCAAqC;AACzC;AAAA;AAEF,QAAI;AACF,YAAM,MAAM,IAAO,gBAAa,OAAO;AACvC,MAAG,mBAAgB,OAAO,MAAM,MAAM,IAAO,oBAAiB,MAAM,OAAO;AAAA,aACpE,KAAP;AACA,UAAI,yCAAyC;AAC7C;AAAA;AAEF,QAAI;AACF,YAAM,UAAU,AAAG,wBAAqB;AACxC,cAAQ,QAAQ,CAAC,iBAAiB;AAChC,cAAM,kBAAkB,IAAK,cAAc,aAAa,OAAO;AAC/D,QAAG,kBAAe;AAAA;AAAA,aAEb,KAAP;AACA,UAAI,oDAAoD;AACxD;AAAA;AAEF,QAAI;AACF,MAAG,OAAI,IAAI,iBAAiB;AAAA,aAKrB,KAAP;AACA,UAAI,0CAA0C;AAC9C;AAAA;AAEF,QAAI,uBAAuB,OAAO;AAAA;AAAA;;;ACvEtC,UAAoB;AAEpB,IAAM,gBAAgB;AAEtB,yBAAyB,WAAW;AAClC,QAAM,OAAO,CAAE,SAAS,CAAC,YAAY,IAAI,YAAY,IAAI,SAAS,CAAC,GAAG;AACtE,QAAM,WAAmC;AACzC,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,QAAQ,KAAK;AAC5C,UAAM,SAAS,KAAK,QAAQ;AAC5B,UAAM,WAAW,KAAK,MAAO,aAAY,SAAS,KAAK;AACvD,UAAM,WAAW,KAAK,MAAO,aAAY,SAAS,KAAK;AACvD,UAAM,aAAa,KAAK,QAAQ;AAChC,aAAS,QAAQ,GAAG,QAAQ,UAAU,SAAS;AAC7C,YAAM,UAAU,SAAU,SAAQ;AAClC,eAAS,QAAQ,GAAG,QAAQ,UAAU,SAAS;AAC7C,cAAM,UAAU,SAAU,SAAQ;AAClC,iBAAS,IAAI,GAAG,IAAI,YAAY,KAAK;AACnC,mBAAQ,KAAK,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA;AAK/B,SAAO;AAAA;AAST,IAAM,YAAY,CAAC,mBAAoB;AAAA,EACrC;AAAA,EACA,YAAY,AAAG,UAAM,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI;AAAA,EAClD,UAAU,AAAG,UAAM,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI;AAAA;AAGlD,sBAAsB,YAAY,UAAS,WAAW;AACpD,QAAM,YAAY,AAAG,UAAM,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI;AACpD,QAAM,UAAU,AAAG,QAAI,WAAW;AAClC,QAAM,WAAW,AAAG,UAAM,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI;AACnD,QAAM,qBAAqB,AAAG,QAAI,UAAU;AAC5C,QAAM,oBAAoB,AAAG,QAAI,SAAS;AAC1C,QAAM,cAAc,AAAG,QAAI,oBAAoB;AAC/C,QAAM,SAAS,AAAG,QAAI,mBAAmB;AACzC,QAAM,OAAO,AAAG,QAAI,mBAAmB;AACvC,QAAM,kBAAkB,AAAG,QAAI,QAAQ;AACvC,QAAM,gBAAgB,AAAG,QAAI,MAAM;AACnC,QAAM,aAAa;AACnB,SAAO,AAAG,aAAS,CAAC,iBAAiB,gBAAgB;AAAA;AAGhD,2BAAqB;AAAA,EAU1B,YAAY,QAAO,SAAQ;AACzB,SAAK,iBAAiB;AACtB,SAAK,QAAQ,OAAM,OAAO,GAAG,MAAM;AACnC,SAAK,SAAS,OAAM,OAAO,GAAG,MAAM;AACpC,SAAK,cAAc,gBAAgB,OAAM,OAAO,GAAG,MAAM;AACzD,SAAK,UAAU,AAAG,aAAS,KAAK;AAChC,SAAK,YAAY,AAAG,aAAS,CAAC,KAAK,OAAO,KAAK;AAC/C,SAAK,SAAS;AACd,SAAK,aAAa;AAAA;AAAA,QAGd,iBAAiB,YAAY;AAEjC,QAAK,CAAC,cAAgB,WAAW,sBAAwB,WAAW,MAAM,WAAW,KAAO,WAAW,MAAM,KAAK,KAAO,WAAW,MAAM,KAAK;AAAI,aAAO;AAC1J,UAAM,CAAC,OAAO,OAAO,UAAU,AAAG,SAAK,MAAM;AAC3C,YAAM,eAAe,WAAW,eAAe,CAAC,KAAK,OAAO,KAAK;AAEjE,YAAM,kBAAkB,aAAa,IAAI,OAAO,IAAI;AACpD,YAAM,oBAAoB,KAAK,eAAe,QAAQ;AACtD,UAAI;AAEJ,UAAI,MAAM,QAAQ,oBAAoB;AACpC,cAAM,SAAS,kBAAkB,KAAK,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE;AAC3D,cAAM,YAAY,AAAG,WAAO,CAAC,OAAO,IAAI,OAAO,KAAK;AACpD,cAAM,YAAY,AAAG,WAAO,CAAC,OAAO,IAAI,OAAO,KAAK;AACpD,cAAM,UAAS,AAAG,WAAO,CAAC,WAAW,YAAY;AACjD,mBAAW,QAAO,QAAQ;AAAA,aACrB;AACL,mBAAW,kBAAkB;AAAA;AAE/B,YAAM,WAAW,aAAa,UAAU,KAAK,SAAS,KAAK;AAC3D,YAAM,SAAS,AAAG,UAAM,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI;AAC/C,YAAM,YAAY,AAAG,YAAQ,QAAQ;AACrC,aAAO,CAAC,UAAU,UAAU;AAAA;AAE9B,UAAM,mBAAmB,MAAM,AAAG,UAAM,uBAAuB,OAAO,QAAQ,KAAK,OAAO,KAAK,SAAS,UAAU,KAAK,OAAO,KAAK,SAAS,cAAc,KAAK,OAAO,KAAK,SAAS;AACpL,UAAM,aAAa,iBAAiB;AACpC,qBAAiB;AACjB,UAAM,mBAAmB,WAAW,IAAI,CAAC,aAAa,AAAG,UAAM,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG;AACzF,UAAM,gBAAgB,iBAAiB,IAAI,CAAC,gBAAgB;AAC1D,YAAM,OAAO,YAAY;AACzB,kBAAY;AACZ,aAAO;AAAA;AAGT,UAAM,YAAY,OAAO;AACzB,UAAM,iBAAuF;AAC7F,aAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;AAC7C,YAAM,WAAW,WAAW;AAC5B,YAAM,aAAa,UAAU;AAC7B,UAAI,aAAa,KAAK,OAAO,KAAK,SAAS,eAAe;AACxD,cAAM,OAAM,UAAU,cAAc;AACpC,cAAM,SAAS,KAAK,YAAY;AAChC,cAAM,YAAY,AAAG,SAAK,MAAM,AAAG,UAAM,OAAO,CAAC,UAAU,gBAAgB,IAAI,CAAC,GAAG,KAAK,UAAU,QAAQ,CAAC,eAAe;AAC1H,uBAAe,KAAK,CAAE,WAAK,WAAW,QAAQ;AAAA;AAAA;AAGlD,UAAM;AACN,UAAM;AACN,WAAO;AACP,WAAO;AAAA,MACL,OAAO;AAAA,MACP,aAAa,CAAC,WAAW,MAAM,KAAK,KAAK,OAAO,WAAW,MAAM,KAAK,KAAK;AAAA;AAAA;AAAA;AAKjF,oBAA2B,SAAQ;AACjC,QAAM,YAAY,MAAM,AAAG,mBAAe,QAAO,KAAK,SAAS,WAAW,CAAE,WAAW,QAAO,KAAK,SAAS,UAAU,SAAS;AAC/H,QAAM,SAAQ,IAAI,eAAe,WAAW;AAC5C,MAAI,QAAO;AAAO,QAAI,eAAe,QAAO,KAAK,SAAS,UAAU,MAAM,YAAY;AACtF,SAAO;AAAA;;;ACrIT,UAAoB;;;ACDpB,UAAoB;AAEb,6BAA6B,MAAK,QAAQ;AAC/C,QAAM,aAAa,CAAC,KAAI,WAAW,KAAK,OAAO,IAAI,KAAI,WAAW,KAAK,OAAO;AAC9E,QAAM,WAAW,CAAC,KAAI,SAAS,KAAK,OAAO,IAAI,KAAI,SAAS,KAAK,OAAO;AACxE,SAAO,CAAE,YAAY;AAAA;AAGhB,oBAAoB,MAAK;AAC9B,SAAO;AAAA,IACL,KAAK,IAAI,KAAI,SAAS,KAAK,KAAI,WAAW;AAAA,IAC1C,KAAK,IAAI,KAAI,SAAS,KAAK,KAAI,WAAW;AAAA;AAAA;AAIvC,sBAAsB,MAAK;AAChC,SAAO;AAAA,IACL,KAAI,WAAW,KAAM,MAAI,SAAS,KAAK,KAAI,WAAW,MAAM;AAAA,IAC5D,KAAI,WAAW,KAAM,MAAI,SAAS,KAAK,KAAI,WAAW,MAAM;AAAA;AAAA;AAIzD,kCAAkC,MAAK,SAAO,UAAU;AAC7D,QAAM,IAAI,QAAM,MAAM;AACtB,QAAM,IAAI,QAAM,MAAM;AACtB,QAAM,QAAQ,CAAC;AAAA,IACb,KAAI,WAAW,KAAK;AAAA,IAAG,KAAI,WAAW,KAAK;AAAA,IAAG,KAAI,SAAS,KAAK;AAAA,IAChE,KAAI,SAAS,KAAK;AAAA;AAEpB,SAAO,AAAG,UAAM,cAAc,SAAO,OAAO,CAAC,IAAI;AAAA;AAG5C,oBAAoB,MAAK,SAAS,KAAK;AAC5C,QAAM,SAAS,aAAa;AAC5B,QAAM,OAAO,WAAW;AACxB,QAAM,cAAc,CAAC,SAAS,KAAK,KAAK,GAAG,SAAS,KAAK,KAAK;AAC9D,QAAM,aAAa,CAAC,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,YAAY;AACxE,QAAM,WAAW,CAAC,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,YAAY;AACtE,SAAO,CAAE,YAAY,UAAU,WAAW,KAAI;AAAA;AAGzC,qBAAqB,MAAK;AAC/B,QAAM,UAAU,aAAa;AAC7B,QAAM,OAAO,WAAW;AACxB,QAAM,UAAU,KAAK,IAAI,GAAG;AAC5B,QAAM,WAAW,UAAU;AAC3B,QAAM,aAAa,CAAC,QAAQ,KAAK,UAAU,QAAQ,KAAK;AACxD,QAAM,WAAW,CAAC,QAAQ,KAAK,UAAU,QAAQ,KAAK;AACtD,SAAO,CAAE,YAAY,UAAU,WAAW,KAAI;AAAA;;;AChDzC,IAAM,kBAAkB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG;AAKtD,0BAA0B,OAAO;AACtC,SAAO,QAAQ,IAAI,KAAK,KAAK,KAAK,MAAO,SAAQ,KAAK,MAAO,KAAI,KAAK;AAAA;AAQjE,yBAAyB,QAAQ,QAAQ;AAC9C,QAAM,UAAU,KAAK,KAAK,IAAI,KAAK,MAAM,CAAE,QAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO;AACtF,SAAO,iBAAiB;AAAA;AAOnB,gCAAgC,GAAG,GAAG;AAC3C,SAAO,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG;AAAA;AAGhC,aAAa,IAAI,IAAI;AAC1B,MAAI,UAAU;AACd,WAAS,IAAI,GAAG,IAAI,GAAG,QAAQ,KAAK;AAClC,eAAW,GAAG,KAAK,GAAG;AAAA;AAExB,SAAO;AAAA;AAGF,4BAA4B,KAAK,aAAa;AACnD,QAAM,SAAwB;AAC9B,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,WAAO,KAAK,IAAI,GAAG;AAAA;AAErB,SAAO;AAAA;AAGF,mCAAmC,MAAM,MAAM;AACpD,QAAM,UAA2B;AACjC,QAAM,OAAO,KAAK;AAClB,WAAS,MAAM,GAAG,MAAM,MAAM,OAAO;AACnC,YAAQ,KAAK;AACb,aAAS,MAAM,GAAG,MAAM,MAAM,OAAO;AACnC,cAAQ,KAAK,KAAK,IAAI,KAAK,MAAM,mBAAmB,MAAM;AAAA;AAAA;AAG9D,SAAO;AAAA;AAGF,6BAA6B,UAAU,QAAQ;AACpD,QAAM,OAAO,KAAK,IAAI;AACtB,QAAM,OAAO,KAAK,IAAI;AACtB,QAAM,iBAAiB,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,GAAG,GAAG;AAClE,QAAM,oBAAoB,uBAAuB,OAAO,IAAI,OAAO;AACnE,QAAM,2BAA2B,0BAA0B,mBAAmB;AAC9E,QAAM,4BAA4B,uBAAuB,CAAC,OAAO,IAAI,CAAC,OAAO;AAC7E,SAAO,0BAA0B,0BAA0B;AAAA;AAGtD,+BAA+B,QAAQ;AAC5C,QAAM,oBAAoB,CAAC,CAAC,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,OAAO,GAAG;AAClF,QAAM,uBAAuB,CAAC,OAAO,GAAG,IAAI,OAAO,GAAG;AACtD,QAAM,sBAAsB;AAAA,IAC1B,CAAC,IAAI,kBAAkB,IAAI;AAAA,IAC3B,CAAC,IAAI,kBAAkB,IAAI;AAAA;AAE7B,SAAO;AAAA,IACL,kBAAkB,GAAG,OAAO,oBAAoB;AAAA,IAChD,kBAAkB,GAAG,OAAO,oBAAoB;AAAA,IAChD,CAAC,GAAG,GAAG;AAAA;AAAA;AAIJ,qBAAqB,uBAAuB,gBAAgB;AACjE,SAAO;AAAA,IACL,IAAI,uBAAuB,eAAe;AAAA,IAC1C,IAAI,uBAAuB,eAAe;AAAA;AAAA;;;AClFvC,IAAM,mBAAmB;AAAA,EAC9B,YAAY;AAAA,IACV;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACtD;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IACvD;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAI;AAAA,IAAK;AAAA,IAAI;AAAA;AAAA,EAEpD,gBAAgB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,KAAK,KAAK,KAAK,KAAK;AAAA,EAC7D,gBAAgB,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK;AAAA,EAC3D,gBAAgB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK;AAAA,EAC9D,gBAAgB,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK;AAAA,EAC9D,gBAAgB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC/C,gBAAgB,CAAC,IAAI,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACtD,gBAAgB,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EAC1C,gBAAgB,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK;AAAA,EACpD,gBAAgB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC/C,gBAAgB,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACxD,gBAAgB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACzD,mBAAmB,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI;AAAA,EACnD,mBAAmB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI;AAAA,EACzC,cAAc,CAAC,KAAK,KAAK,KAAK,KAAK;AAAA,EACnC,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC9C,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACxD,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC9C,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACxD,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC9C,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACxD,eAAe,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACxD,kBAAkB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EACtD,kBAAkB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK;AAAA,EAC5C,aAAa,CAAC,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,mBAAmB,CAAC;AAAA,EACpB,SAAS,CAAC;AAAA,EACV,YAAY,CAAC;AAAA,EACb,iBAAiB,CAAC;AAAA,EAClB,gBAAgB,CAAC;AAAA,EACjB,YAAY,CAAC;AAAA,EACb,WAAW,CAAC;AAAA;AAGP,IAAM,2BAA2B;AAAA,EACtC,CAAE,KAAK,aAAa,SAAS,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EACrD,CAAE,KAAK,aAAa,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EACtD,CAAE,KAAK,aAAa,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EACtD,CAAE,KAAK,aAAa,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAAA,EACtD,CAAE,KAAK,aAAa,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EAC9D,CAAE,KAAK,aAAa,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,EAC9D,CAAE,KAAK,aAAa,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA;AAKzD,IAAM,QAAQ;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,gBAAgB;AAAA,EACjB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA;AAGf,IAAM,SAAS;AAAA,EACpB;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACtJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACtJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACnJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EA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A,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAA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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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", "names": [] } diff --git a/dist/human.node.js.map b/dist/human.node.js.map index 69f0a60e..67041294 100644 --- a/dist/human.node.js.map +++ b/dist/human.node.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/tfjs/tf-node.ts", "../src/blazeface/facemesh.ts", "../src/posenet/keypoints.ts", "../src/human.ts", "../src/log.ts", "../src/sysinfo.ts", "../src/tfjs/backend.ts", "../src/blazeface/blazeface.ts", "../src/blazeface/facepipeline.ts", "../src/blazeface/box.ts", "../src/blazeface/util.ts", "../src/blazeface/coords.ts", "../src/age/age.ts", "../src/profile.ts", "../src/gender/gender.ts", "../src/emotion/emotion.ts", "../src/embedding/embedding.ts", "../src/posenet/posenet.ts", "../src/posenet/modelBase.ts", "../src/posenet/heapSort.ts", "../src/posenet/buildParts.ts", "../src/posenet/decodePose.ts", "../src/posenet/vectors.ts", "../src/posenet/decoders.ts", "../src/posenet/decodeMultiple.ts", "../src/posenet/util.ts", "../src/handpose/handpose.ts", "../src/handpose/handdetector.ts", "../src/handpose/box.ts", "../src/handpose/handpipeline.ts", "../src/handpose/util.ts", "../src/handpose/anchors.ts", "../src/blazepose/blazepose.ts", "../src/blazepose/annotations.ts", "../src/gesture/gesture.ts", "../src/image.ts", "../src/imagefx.js", "../config.js", "../src/sample.ts", "../src/draw.ts"], - "sourcesContent": ["export * from '@tensorflow/tfjs-node';\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json', // can be 'gender' or 'gender-ssrnet-imdb'\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA\nAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu\nbmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob\nIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgo\nKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgBAAEAAwEhAAIRAQMRAf/E\nAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAE\nEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZH\nSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1\ntre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEB\nAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXET\nIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFla\nY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG\nx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+qaKACigApGOKAML\nXp8xlF5A7V4X8RtYs7PzfNImnx8sa8Kp9z3q2tEgp6angWs62ZZ5CTGoJ6DArGNz5p+UrID6EUrF\nPUlW1EuN0XNW7PQ2L5j3JnoKXN0KijqNP0eYoqXBdgPuuo+ZPeupisWn2Jd4+0r924XgsQOCff3/\nAJ1FzRKxDqGii6m3siiQ8F1XGfXI6YNWLfRbiRQMkcZI9fpTDluT2/h6Qy8gDPbtmtG38JeY480Z\n5zSLUTZg8M28YwYxjAArXtdPt402qgHbpSaLWhma3o0Uqk7Nx9DWLaaVblgPs6qRyds2M/gRSQp9\nzZOni2iWS2hlQ+kjYz9OMGrdjq89vIPPVhj+8M/lQyDq9P1WOYBlMZz1AOD+VdDaTiReOKulK0jO\ntHmi0WDTlr0TyxRVhT8tJjIX+9SUxHXUV553BRQAVBcPhSBTSuxPY86+IGti0s5I7dsORy9fM3i6\n8e8mfDO5P90ZrWWiJicNPpZZtxV/xrW0jQt4DOv6Vk2dEEdTY6BHuB25rpbPSo0QARjP0qTRI17W\nwA/hFaMWmoQMgflQXYsDS142rU9tpqqenfNA7GgtihxkdKuRW6qMY/GkDZY8sY4Ap4hXbyB+VArk\nEtuH4wPyrk/EGkOm+a3jw3suRQLc5i38SX9hJ9nnY+XnBUdPyNdFY6pa3KkkAE9l6f8AfJ/pSJT6\nGhDmI+Zb4ZRycdv6ium0nUhKFydrelTsNnS2829RnrVgV6NKXNG55lWPLIM81Op+WrZkRMfmNNzT\nA7GivPO4KKAEY4XNYWt3vkwPg4OK0giJdjw/xrqhm87Zs8tc7pX5A+leSajf6aHYJ50kn4AZpTep\nrBWRm2Vobm4BXfyehPFdnpmnBFUY5rI2SN63tlToK0YI+KZpFF+3QdavwoKTLtoW0Toaswpk5pCb\nLCxipAhoIuP2dKevHXoaYDylRyxhlwRQI4nxVoCXWZI1GfpXGtbSWjYPGP73+NIGupt6TqMsLruZ\nih4xnP5V09mQ+JLd8gn0xSYJnVaVdkook69K34zuUGunDS3Rx4qOzHVIp4rrOMY3NJQI7GivPO8K\nKAILt9kZrz3xlebYiu8KCCWb0XvW0NFch6ysfO3jLVjfXLIn+pQkKorl7WxNxIPl71g2dUUdpo+l\npBGvHPet23iC8ihFosrxirkHQUFo0IF4FXI1O726CpKLacCrMJoJLYHAPpTwucHpSRJJ5e4AZI9x\nUqpxzVpCuOC8cUpQUMRnXttuB4rjNdsYyeVwfXpmpGmcvcQyafMCFJjPY10eg34BUg4DcZP8jUO4\nHaRq3lLNF+IHet7R7jz7c56rwa2wz9+xhiVeFy/T1PFegeaNPWigDsc0ZrzzvDNIaAM7VpNqdegr\nxL4l6kywyRhseZ19lrdfAZL4jxYg3Fw20d63tJsdrDI5rm3Z3R0R0Mce1eKnQYAplIkWrMJ45oZS\nNO3PHbNXIyfpSGWowSOasxLUiZdjFSqtNEMkUemKlAGKsRJjAppFAiORMjmsTVrNZEO4cfSoZSOD\n1eJ7WXBUzQZ+7nkfSo7e2Ei+ZaMzxntjBX2NSU1Y6/wxqojiEFzkA8KTXYaUoWRyv3W5rSjpNHPX\n+BmpSg8V6J5gUUAdhRXnneFFAGHrTfu5PpXzj8S70/aZtxzztXFbv4DKHxHI+H4GZiz9zxXXW8G3\nGBXMjvLRXAx0oPGPSmMVeOnWrMTYpFI0bcg1fh54xmgovRcD3qxETSIZcRvzp+/BpEkqsBUqsM9K\nq4Em4Gkxk0yRGXrVW6i8yFhkg+tJjRxGsWrxllkUMh9eK5uMz6bcebbnfG33kPcVkay2OntPKuo0\nnhXI67c8qa7Lw3c+adjcEDGK1paSRhVV4s6A0or0jyRRQ1AHX0V553hRQBz+vNtt5z3xXzX8Qbdm\nuic5YnOMdK3l8JnTXvlbwpYl+WySOgrp5YfLOOB9O1c62O7qQkc+9RsKChFPWp4DluOlSykaNruH\nArUgHShFNF2NT1qxGO3NBmyxGcE1N2560CFzjrUysO9JAPDDjFOVuKoQuSRTWouBkazbCa3cd8cV\nwF7IISQccHBzUSWpV9C3o1x5b5GAjdQD1rs9DjC3kckbEhqKfxIzn8LOupRXqnkPccBSkUAzraK8\n87wooA5rxMSI3HqK8B8bQl9Q8sffY5b/AAraXwkUviNrw9pH2W1ViMMRTdRjw4HpWNtDti9TPc4P\nFQs2M5qdyyMHLcfjV63HTAoBGtap0wK0YxigpsuRDtVhVYd6GQydVwwIqdRnqKCR23I5pCMUW6gD\nYNKuetAEise9KTxQBWuFyhrznxNZkXjFeN3I+tTIZg2OqmzmxNF0PO3vXp/g2+hukVl4zyPanTXv\nJmVR+60dpThXpnlPceopWFAbnV0V553hSGgRynjC5FujOey14Ssp1HxNmTnc+a3kvcIpv37HoEYQ\nQmMdVHSsnVbYJF5jVk0dsNzlruVIsl2wKxbjWrVHILjg1CRbZJb+ILHPzyhfStODWLQgFJFYd+el\nUJM27HUIXxhga1Y5lLVLKLkMnoauxnPPrSEx7ShF+Y/n2qrc6xBbhizDAqkK1zJuvG9nbg8ZA681\nly/Ei052RO3uKAsZlx8QGd8xxvt9Aa1NH8dK7AXMcip64zigdkdrZX8F7EJLdwwNXMkrz1qRMRly\nCK4TxmpidWI49felPYSOMmi80NIoOV6qRzXYeA5SskYPfirpfEjGr8LPWVHyD6U4CvQPL3ZItOYc\nUDOoNFeed4Uhpks4H4iE/Z5MeleMeGULeLgjds10S+BGdL+Jc9OSBU2Huc5Nc74yvUtrcDBrJnZF\n63PJdXvLy/lKWw46bvQVz82jXhkLO5Y+9ZlsYthcRnbIjY9R3q3awTRkEM3WmJI6C0ea3dGRsr1x\nXY6TqW9FLHnjrUs0izpLK5DDjofSta3ckH09KRUkZuuTvFGdvPauE1Y3U6Mqbssf/rUxHPTaJPK2\nZmJPbBqzY6DCZh5xJC9s9aBJHU6dpemJjfEmfetJtI0+VPkUr/unFOxdiextHs33W07YHQHk11mk\nXb3KbZ1xIvcd6LEyWho4Nct41sTPYb16ipexCPPZN+wYGCvH1rrPAEJmvkPoc1VL4kZVvgZ6yFwK\ncBXoHkkqinFaVyzo80GuE7WJRQSziPiGdthK5HQV4x4J/wBI8WPIewNdEvgRNL42emO/yj1UHNef\neNpRczbC+I17DvWT2OqJxc0sMK4TCisy41q0hfEkqj8aixdwTXNOlwvmqD9anS9tXH7uVG+hosO4\n/wC0oOhrR0+6G4YNIEzsNEuCxAPNdjZruA4xxUmjINSjURksOlcbqFykbnjFA1sYGoassaknCqO5\nrl7rxhGm7yBnBxuJq0rkSlYpw+NLlsfd5P8AerVsvHEqSBHwPVgcgVpyMyVXU3rXxcHYETAk+hru\n/DWti6ZSTyOKzZqndHaxvvUGq2rQ+dYyqR24qWI8dvbr7LqDxyDAzXpvw6FvIxePGSM06Xxoyr/A\nzviKFHNegeX1J41zUhXioGbuaSuM6wpCaBHG/EcA6HN/exxXjXw2jL67cv8A3Qa6H8CFR+NnoWpO\nI4XI44rxLxrqjQzSEsQM1gdSPM9U1uR1YbmWIdXHf2rmpIb67YS28UrRlsLI3c/jW0VZGUpO5pW1\njfLNOjahawzwReYI5cjzMkDavHJ5/SrVv9uhtPtVxCPLBwzxnlT9KGghLU3tKvvPjHzbl7EGuisJ\nGRxWLOg7nRXJEbDjmvSNK+aFSfSoZr0KutRkphc4NcRrdkVjL9aVio7Hk3iqS8ubhrWzUlsZY9kG\ncZNc5D4aee5MclzJIFTzHAO0MfatqSOWu7bFS1srDUZEis0vIZoUxPvfcC+4/dx2xjr712XiTwXb\nWmlQ6hol3cRhoFd4rlg3zY5wR0GelavQwjq7GD4etdVvSnk2wAB+9v8A8mvcfA2kXiRo0/UdcDis\nZnTTulqeoWqbUAJqWUb42X1FZlnjfjSwlGrr5S/eNdD4RkvLAAQ4yRyaUZcruVKl7TQ9I0G+mnzH\nckFwM8VuIK7ac3KF2eXiKapz5UWYxipNtMyNejNch0jSar3cjR27uoyQCRVRWom9DxTx54gu5fMi\nlbKdMVjfCZPNlv5v9rFbVHpYqjGzbOn8SzFI9o715L4u0r7arYzk+lYdTqSujy7U/C0u4vHk+WwO\nxuh9q3J9dgvbdVukMV1EwbDDgn04rZMwlHoZ+orZ6hfQ3RWVnQYCgZAq+8U0ln5NtBsV2yxYcfgK\nJtW0CnB31LlroVwJ1nQLGDjeP7w+lb0dsFxjrWB0tHS6NuWPJ6A16ToUm63T3Gallr4S7cxiTjrX\nPaxaF7dlVeSMUhxZ5jd+H7qCa4eF3DSE5x3zXN3Wk6jbyeaiFWUY6ZyPStYS5SalPmVipFbX0E4c\nW0alvmPHJrag0rVvEE6LdljGpG2NRtQD+tW5XMI0uU9M8NeFo9PiQhecDIIrtrOMIoG3H4VlJm9t\nC6CB06VPGM1IHLeItGS6uw+ORT7e3jsbQvj7gzUNam0JaWE+HN7NqOqX80n3FO1RXo8YzXdS+BHk\n4z+KyzGPapcU2YIv7qQtiuaxvcaWqG4O6FwfSrS1JbPnrxoxkv7qIfejcitj4V2f2exumI+8+aKn\nxHTT+G5d8Txlm4rjLxMsQwzWT3OiK0Mm6sEkVsAcjFc1d+FEmlGwEDPQVopaEuOpr6f4ZWNAu3tW\nvHpAj5ZQcUFIWaDjGMVUMQ3cVDBmvbhY7QAV2nh+T/R1yeKhlrY31+b61FcQK6nIoJMi401WblRi\nqr6PCw5UYq9y+YgOgWzNkRrx3xWjp+nx2v3FQcelAbmko9anQ4GBUNisPHWr1qMrQhS2K11HvmYV\nhamcxSRZ5xRIqluS/DKAQQXZxyXrvo2FdlL4EeZjH+/ZbjNSZpswLNBrE1Gt7VE4ODVIlnh/j61F\nj4lmeTGyUbq6LwdEqWbeX0YbhSqfEddP4Bddj4JIrhL5d8h7VjI6oLQqKNzelWre3yc4/ClFjaL6\nwqBxxUUxwCKu5BmXRA6c+9ZjP83FSBoQuPs4BrsNBlUW659KmRrDY6G1lyQtW3Hy0lqQ1qVJnAbm\noy3b9KYJCqRj3o4zRctIlhjLHmpSuOBRbQOpLGpPFaES7UqkZzKN1KsEc87/AHUUmvPLTVGv72aQ\nk7WJwKmRrQ3ud74Ltilgz4++2a6iNDXdS0gjyMU71my7GpqTbxSbMki3SViajTTHqkSeR/GeyZmg\nnQHkEE1S+F+oPPavBL96I4/Cia1udVF+4dVrkW+Fq8+v4tjMDWUkdVJ6WM0cNV+F+MVmjUcZgqnP\n1qpNNnkcVRLiZtxIS1UzzIF7mghlxUZpVQdq6nTVdAoAOKzkbQWhvwM6gMM1twOJYx3NOJE11Kt1\nH1/pVVlwBkk+9NocXoOQ45FPj+fkUJFF2NSB700v/hTEty5ZpkjvVyUgcCq6GM9zC14/8Se6GcZQ\n1574Xs5WkI2HBPHFQ1dm1KSSZ7Rotn9l0+KPHIHNacae1dy0Vjxaj5ptlhVp+2s2CJ9ppCKzuWNx\nzSFc1SYrHNeNdIGpaYw25ZeRXmvheyk0jVpEdcLJ0q3ZxNKTa0O3vQHg/DNcHrsJDmsmjspnNzNt\nfFIJ24GazOhC+azDmgZIOOKBsp3J2qSaZodubq58yQ4QAnmhGT3NO18pb7BORmu205LfYpyKVkWp\nOxr5gKYWoIZWgfGfloFq1qTPLubnGO1RPtxg4P0oBAkY/hBz6VNDDkZ6AU0W2WSdqkdKr9ZOaGSj\nVtcLHmnOcgmmYvcz7mBLy3MbdD1q9ouiRK6bUAVeelOC1InPlidSsWMDFOCEdq3uefykqrinYqGy\nrFvApMVka2DAowKAsMkRXQqwyDXn/iWyitNQ3qPl6itIvRoF8RXinW4tQ6HI6GuW8SIVBPalc6qe\n5x9x97r3qruwTjrWZ0ksZ9TUmcDNAmZ9/wAoao63rR0+w22MLPtAzt6mghmfofiB76LdJBJBIp5D\nd/oa7bSdWLIPnpDi9TM8TeKdas51XTbIyxd3J/pXS+E/EFxqNoFu7do5OmD60maHWrnZyDRkn/69\nMlEyOR0xntVoNx+FUgYjPxg4FLCuWDZyKQr2RoRnP0qO+nEFpJITgAUzLqZnhu6+0rknOTXpOmwJ\nFbrt5yMmnHYyr6Oxb2ijaKLnPYMClwKQWK3n0hn+lachHOJ9pNNN0apQFzsY10a4v4hXQh0xpieQ\nMA1XLZNjhK80cT8OdV+3Wl3A7ZZJCw+hrR1qLcjZ/CsbnfHRnFXseHJArOYYbrUs1uPhYbuatqFP\nByfSkMq3UIINYkto+87Tx6GkSxfsDbflGD7CtTw/pk4nzITtPIFMFudsukh4Rxz71paTpKwP5jcn\n0qTRy0NORMDgVCqewoJTJgAoxjntTiTu7fWmFxAcnn1q3EPl+X8KZMi4gKqB1Peob/Tv7Us5bfeU\nyOoq4R5nYxqT5I8xieH9J1DTbvyJELRg8ODwa9Ms5mSFV9BWiptbnNVrKdmif7Q1KLg96XIZc5Is\npNL5pqeUrmMtZs0jzV08phchaY00zH1p2ZNxjS1g+LdJOt6U9ssmxjyGp2urDjLlaZzng/wUPDqz\nTSTmWeTrjpVjVk3Rvjr2rnqQ5dDvo1XUd2cTqSNk9OKxXGCeKxZ1DAxHTr2q5C/y8GokUhsz54qu\nuCxzSQjQ0+FZblR2ro4bZYiMVQ0dBb7Qi5x0qzuG5QOh71LYErDufpSeWrHnimIXbjkUjLkH1Hem\ngGxryc+tXI19KYmWegq9YLiLJ7mtqS945cS7QsWehqxA9dEjz4krPSxyZqbFFhGxUm6smjRM55Lk\nHvSvNxXTY57kLT+9MNwKdhXGm5FIbkU7Bca1wMEVhaiuQcVhXWiZ14R6tHGanGBI2OtYkqEHjgVy\ns9ErEeo6UBsHipKEZs5qpPdRxcbhx70NCSuybTNWihc5brW9Fq6vjMnFSdEIdDRi8RRKygZbHFbu\nm6nb3RA3gMegNJhOm0jbXGOoxTuCc1Rz3FyoGKawz9KaAVcZqeMgCmIkB4FaUTbYwB6V00Fuzixb\n0SFMuDU8Mlbs4UPeXHeiOXkUrDuXYnyKk3cVk0ap6HMxxketSMhrcwRC0dMMZFMQ3yzSeVQAeUaz\n9Vj8uPd271nVV4m+GdpnHX67pCeKyLtBtNcR6xlk9RVeWTb3qRnO6trgttyIfm71z7ai8j7/AJmN\nDNqUVa5Yi1AnjynHuBV+11YJhWWXcP8AZNSzqgmaEerSsf3NtIQP4mGKtRavdRgMIpVI9KjU0a7n\nR6T43uYQI7qN2Tpkqciu503VVuQGAYZHQjFVc4alPlZrpKGAznpTwxOc9+lWjIlUACnM4XApiLNk\nnmvnsK0NvpXZRVonmYqV52GsmanhXitTmFkSiJTSAvwrxUxXIrJ7miOfjf1pzNWxkRlqYWpgJupu\n6gQbuahvIxPA6eo4pNXVioS5WmefakGhndH4INZs5DJXA10PaTurmLO21uKpSZqGMoXGnRzBiyjd\n9Kx5rcQS428fSkjanLoaOliHGZFB56VswW+mtPufcBsGOAfmxz+tFkd8HpoaUx09FAtFY8DO71qb\nSms/Nb7RbecG6AEjFLS5c78t+p0djpVs9wsyQiJAdyr1rW+zqjErzSe559Sbk9S3C+MA1bjbgE1S\nMSXzMVG0vNUI2tPKrAuCMnrVzNd0PhR49W/O2xrHmp4TxVMzQshpIzzQBehqesnuaI5VGzT2bitz\nFEbNTC1ADS1JupgG6l3UAc14s04yR/aYRll+8BXCtLncDXFWjys9TCz5oW7GddH5qqNzWDOgQnC8\nVSuo1kHzAGkPYopEY2+RWxV23Vzj5G/Kg3jWaNazhZuqNXS6TaKhB2c0jR1nJWOlhOxRxU4YkCgx\nY0OQatQyDbyaaFYe8uF4NY3iC9ltbVGj43NTIL3h7WzMihjzXVQXYYDdW9Cf2WcOJpfaRZ3g9KsQ\nmupnCLIabGeaAL0LcVY3cVmzRHIxtUhetzEjZqjLUAIWpN1ArhupwagAfDKQ3Q1594v0c2bm6tx+\n5Y8j+6ayrR5onThp8s7dzkZjuqAAmuBnqC7c0iwgtzSA0rWzjfGRW3ZadDu4AoNYo2rfS4v7orSh\n05UA2r0pDbsTm29KRottBNyJ0wpJ9KhD7f6U0ikNWffIFBz60zVUW52ow4UcUN6EPcx44WsbgOmd\nua7TT5Bd24KHnFKnLlZFSN4koluLdueRWvp14swweG9DXoxldHlTjYtzGoo25qzEvwtUxas2jRPQ\n5CNqkLVsYoYzUzdQA3dSFqBBmnqaBhuqhriCXTpVIzxUz+Fl03aSPI9QTypW2/dz0qKNw3SvOPZR\nMqin8VLKRcs3O4Cuk0w/MDjt1NBtHY6O2IIHY1pxgFaETIRwMkjtVSUEk4570MlFW5bap6dKzWm8\n1tqH8aY+hp2FvGoGayNevVt7/ap4xzUvYjqTLtvLPcvJxSaVcyWsxTnFZlnT2t15xHmCtOBYwQy4\nB9q7cPO+jPPxFO2qLEj5HWo42+aus4HpoX4W4FTF+KlotbHII9SFuK0MUNZqiLUDE3UbqBBupwag\nBc1DefPbyD/ZND2KjujyPWlKzuPesRZjHJXms9lMuw3StjnmphKDSLTJ7OfE3JrpbO4GQc9qlnRA\n3LO82k5NbFvdADkjBoCSHyXIIIzgVQvdRigT7wzjgUzO1jHknlvG7qnp61etYFQDIpCZoqVijzXn\n3iC8EmsOuaCGb/heR/s0ijkVv6fbxy3QMg5xmsnuX0Ldzut3+UYTPWk+2GJSe+M1pFtamcldalmx\n1eO4XaThhWnC+TXqR2PHqL3maUJ4qRjxSEjj42qXdxVmaGs1MJoATfSbqBAG5p6mgAzTJTmNvpQU\ntzzHXY83D/U1zF5FhjgV5r3Pa6FMsV5HWnLe7RhqBRdmTwagN2d2K2rPU1C5LAnPrUs6Iysbdrq6\nf3gK0BrUKj/WClY05iM6xLOcQAj3NT29uznfKSzHuadzNu7NSBFjHNSm5VO9IRnajqoWMhTzXFtA\nbvUfMduSeg702Qz0rS7FbTToQFwzjJqaGTFyfK5PQViyzUuFmuIdgGABya5u/vTaN5cnUHFUmLoZ\nzyskwlgJweSK6zQdUEwVJeGr0aUrxPLxEfe0OrhPAqVjxWhznGRtUwatDK4jNxURbmkAm6jNABup\n6tQAFqhupNtu59qUnZFwV5JHnWsHdIx96w5lz15rzT2uhRmt85xWbcxMnUGmZlB0bdxmrNvFIcfM\n350mWjbs7YkDJY/jW5ZWW4jikWkdNp9mqYJFaJdEHHakUULu/VB1rLn1Ld/FgetMGYd/qWSQmSa0\n/AemS32pfa7piLeLkg9z6UmQtz0W7uQ2cZx0A9BVzR7cAea6j2rPqX0L99KRat5A6Dk1wOoKZ52a\nYfMORTYRLujiGWEq6/NWza2yKQVHNdOHerRy4laJo6TTnbbtb8KuM3Fdh5z3OJjbmpt3FaMxAtUZ\nagBN1GaQBzTwaAAms3VbjERUGsa07RsdeFpuUuY4jUjljWTKK4j02RE4IpJYFk6imQkVl0xWarsO\nmAEcUi0bNnZBR0rWtoguMCkUi21wI161mXuocEKaYXMS4u+pY/hVCSWSY4HT0pEmlouiSahdpEBl\nmOceleiwWcNjClvHgJH97Hc1EmVFFi3Czy7mwIl/WtJbjP7uLgd/apQ2VNVvtsBhiPzdK5S4nAuR\nnqOCaTGi9pcytPlU+XpmumtWII44rah8ZjiNIXRuWeNvvViQ/LXpJWPJbu7nCRvVkNxVsxBmqJmo\nEPiXca0YLMuOlJsuKuPlsSi5IrNuG8s4HWs5VEkbwoOTKsk+FJY4rC1K53k1xTk5O7PSpwVNWRzt\n4cms+WpKICtSLTETQj5q0YeBSGiys23pUguGxQMq3E59ayrm4x3yaAKiRtO2WPHcmhruKFxFajzZ\nScA44qRHoXhuMaLpxaUg6hcDLMf4F9KlhuDeXGASIl+8azZslYma68y48m1+7nFW5rtbRNhb5z1p\niMKbUg0zuW4A4rPgb7VdKXOMmpA7HRbMS7nUYiUda0lkQOBngVrS+JGdbWLRt2bAx5BqeQ/LXpnj\nPQ4GJ+ashuK0MhWaoWcA0AaOmASMK7jRNPWYBmHyiuepO2x10qfcv6vYxCzYqoGK4HVYVTJrmb5l\nc6oaM5TUJ8EgGsG4kLNUHT0M64OaqMMikSRsuKbnFMRLG3zVehOaGNE445NNlnVFpDMu6uie9Vo1\n8z5mOAOST2pDK91cNN+5tsrH3PrW54a06KxT7fdrlh/q1Pc+tJ6IUdZGvHPLezMcnBOWbsPap5r3\nylFtbdT1xUWNWzU0/Zbwlgfmx8zGsHWtRHmMqE59aAMyNifvHPc1f0gtPdqkY5JosJHeNci2tktY\neuPnNY+oXWZEVJNrZ9aun8SIq/CzodHuriIokhDIR1ronbKZr0o6o8ipoz//2Q==`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n"], + "sourcesContent": ["export * from '@tensorflow/tfjs-node';\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface';\nimport * as facepipeline from './facepipeline';\nimport * as coords from './coords';\n\nexport class MediaPipeFaceMesh {\n facePipeline: any;\n config: any;\n\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results: Array<{}> = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n const boxRaw = (prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.faceConfidence || prediction.boxConfidence || 0,\n boxConfidence: prediction.boxConfidence,\n faceConfidence: prediction.faceConfidence,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nexport async function load(config) {\n // @ts-ignore\n faceModels = await Promise.all([\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled && config.debug) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled && config.debug) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.triangulation = coords.TRI468;\n", "export const partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexport const NUM_KEYPOINTS = exports.partNames.length; // 17 keypoints\n\nexport const partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexport const connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([partIds[jointNameA], partIds[jointNameB]]));\n\nexport const poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexport const partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import { log } from './log';\nimport * as sysinfo from './sysinfo';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend';\nimport * as facemesh from './blazeface/facemesh';\nimport * as age from './age/age';\nimport * as gender from './gender/gender';\nimport * as emotion from './emotion/emotion';\nimport * as embedding from './embedding/embedding';\nimport * as posenet from './posenet/posenet';\nimport * as handpose from './handpose/handpose';\nimport * as blazepose from './blazepose/blazepose';\nimport * as gesture from './gesture/gesture';\nimport * as image from './image';\nimport * as profile from './profile';\nimport * as config from '../config';\nimport * as sample from './sample';\nimport * as app from '../package.json';\nimport * as draw from './draw';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt((Number(process.hrtime.bigint()) / 1000 / 1000).toString());\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\nclass Human {\n version: string;\n config: typeof config.default;\n state: string;\n image: { tensor, canvas };\n // classes\n tf: typeof tf;\n draw: typeof draw;\n // models\n models: {\n face,\n posenet,\n blazepose,\n handpose,\n iris,\n age,\n gender,\n emotion,\n embedding,\n };\n classes: {\n facemesh: typeof facemesh;\n age: typeof age;\n gender: typeof gender;\n emotion: typeof emotion;\n body: typeof posenet | typeof blazepose;\n hand: typeof handpose;\n };\n sysinfo: { platform, agent };\n #package: any;\n #perf: any;\n #numTensors: number;\n #analyzeMemoryLeaks: boolean;\n #checkSanity: boolean;\n #firstRun: boolean;\n // definition end\n\n constructor(userConfig = {}) {\n this.tf = tf;\n this.draw = draw;\n this.#package = app;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.state = 'idle';\n this.#numTensors = 0;\n this.#analyzeMemoryLeaks = false;\n this.#checkSanity = false;\n this.#firstRun = true;\n this.#perf = {};\n // object that contains all initialized models\n this.models = {\n face: null,\n posenet: null,\n blazepose: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n embedding: null,\n };\n // export access to image processing\n // @ts-ignore\n this.image = (input: any) => image.process(input, this.config);\n // export raw access to underlying models\n this.classes = {\n facemesh,\n age,\n gender,\n emotion,\n body: this.config.body.modelPath.includes('posenet') ? posenet : blazepose,\n hand: handpose,\n };\n // include platform info\n this.sysinfo = sysinfo.info();\n }\n\n profileData(): { newBytes, newTensors, peakBytes, numKernelOps, timeKernelOps, slowestKernelOps, largestKernelOps } | {} {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n #analyze = (...msg) => {\n if (!this.#analyzeMemoryLeaks) return;\n const current = this.tf.engine().state.numTensors;\n const previous = this.#numTensors;\n this.#numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n #sanity = (input) => {\n if (!this.#checkSanity) return null;\n if (!input) return 'input is not defined';\n if (this.tf.ENV.flags.IS_NODE && !(input instanceof this.tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n this.tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2): number {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig = null) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.#firstRun) {\n if (this.config.debug) log(`version: ${this.version}`);\n if (this.config.debug) log(`tfjs version: ${this.tf.version_core}`);\n if (this.config.debug) log('platform:', this.sysinfo.platform);\n if (this.config.debug) log('agent:', this.sysinfo.agent);\n\n await this.#checkBackend(true);\n if (this.tf.ENV.flags.IS_BROWSER) {\n if (this.config.debug) log('configuration:', this.config);\n if (this.config.debug) log('tf flags:', this.tf.ENV.flags);\n }\n }\n if (this.config.async) {\n [\n this.models.face,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.handpose,\n this.models.posenet,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.face || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('posenet') ? posenet.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled && this.config.body.modelPath.includes('blazepose') ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.face) this.models.face = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.body.enabled && !this.models.posenet && this.config.body.modelPath.includes('posenet')) this.models.posenet = await posenet.load(this.config);\n if (this.config.body.enabled && !this.models.blazepose && this.config.body.modelPath.includes('blazepose')) this.models.blazepose = await blazepose.load(this.config);\n }\n\n if (this.#firstRun) {\n if (this.config.debug) log('tf engine state:', this.tf.engine().state.numBytes, 'bytes', this.tf.engine().state.numTensors, 'tensors');\n this.#firstRun = false;\n }\n\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.#perf.load || 0)) this.#perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n #checkBackend = async (force = false) => {\n if (this.config.backend && (this.config.backend !== '') && force || (this.tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n if (this.config.backend && this.config.backend !== '') {\n if (this.config.debug) log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n if (this.config.debug) log('wasm path:', this.config.wasmPath);\n this.tf.setWasmPaths(this.config.wasmPath);\n const simd = await this.tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n const mt = await this.tf.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT');\n if (this.config.debug) log(`wasm execution: ${simd ? 'SIMD' : 'no SIMD'} ${mt ? 'multithreaded' : 'singlethreaded'}`);\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') backend.register();\n try {\n await this.tf.setBackend(this.config.backend);\n } catch (err) {\n log('error: cannot set backend:', this.config.backend, err);\n }\n }\n this.tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (this.tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n this.tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n // this.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this.tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await this.tf.backend().getGPGPUContext().gl;\n if (this.config.debug) log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await this.tf.ready();\n this.#perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n #calculateFaceAngle = (mesh) => {\n if (!mesh || mesh.length < 300) return {};\n const radians = (a1, a2, b1, b2) => Math.atan2(b2 - a2, b1 - a1);\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => Math.abs(((theta * 180) / Math.PI) % 360);\n const angle = {\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n // roll is face lean left/right\n roll: radians(mesh[33][0], mesh[33][1], mesh[263][0], mesh[263][1]), // looking at x,y of outside corners of leftEye and rightEye\n // yaw is face turn left/right\n yaw: radians(mesh[33][0], mesh[33][2], mesh[263][0], mesh[263][2]), // looking at x,z of outside corners of leftEye and rightEye\n // pitch is face move up/down\n pitch: radians(mesh[10][1], mesh[10][2], mesh[152][1], mesh[152][2]), // looking at y,z of top and bottom points of the face\n };\n return angle;\n }\n\n #detectFace = async (input) => {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes: Array<{\n confidence: number,\n boxConfidence: number,\n faceConfidence: number,\n box: any,\n mesh:any,\n meshRaw: any,\n boxRaw: any,\n annotations: any,\n age: number,\n gender: string,\n genderConfidence: number,\n emotion: string,\n embedding: any,\n iris: number,\n angle: any\n }> = [];\n\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.face?.estimateFaces(input, this.config);\n this.#perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.#analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n const angle = this.#calculateFaceAngle(face.mesh);\n\n // run age, inherits face from blazeface\n this.#analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.#perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.#analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.#perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.#perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.#analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : [];\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : [];\n this.#perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.#analyze('Finish Face:');\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled && face?.annotations?.leftEyeIris && face?.annotations?.rightEyeIris) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations?.leftEyeIris && face.annotations?.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n faceConfidence: face.faceConfidence,\n boxConfidence: face.boxConfidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n angle,\n // image: face.image.toInt().squeeze(),\n });\n\n // dont need face anymore\n face.image?.dispose();\n this.#analyze('End Face');\n }\n this.#analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.#perf.face) delete this.#perf.face;\n if (this.#perf.age) delete this.#perf.age;\n if (this.#perf.gender) delete this.#perf.gender;\n if (this.#perf.emotion) delete this.#perf.emotion;\n }\n return faceRes;\n }\n\n // main detect function\n async detect(input, userConfig = {}): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.#sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n const timeStart = now();\n\n // configure backend\n await this.#checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) this.tf.engine().startScope();\n this.#analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.#perf.image = Math.trunc(now() - timeStamp);\n this.#analyze('Get Image:');\n\n // prepare where to store model results\n let bodyRes;\n let handRes;\n let faceRes;\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.#detectFace(process.tensor) : [];\n if (this.#perf.face) delete this.#perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.#detectFace(process.tensor) : [];\n this.#perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run body: can be posenet or blazepose\n this.#analyze('Start Body:');\n if (this.config.async) {\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.#perf.body) delete this.#perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n if (this.config.body.modelPath.includes('posenet')) bodyRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n else bodyRes = this.config.body.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.#perf.body = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Body:');\n\n // run handpose\n this.#analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.#perf.hand) delete this.#perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.#perf.hand = Math.trunc(now() - timeStamp);\n }\n this.#analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, bodyRes, handRes] = await Promise.all([faceRes, bodyRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) this.tf.engine().endScope();\n this.#analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n // @ts-ignore\n gestureRes = [...gesture.face(faceRes), ...gesture.body(bodyRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.#perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.#perf.gesture) delete this.#perf.gesture;\n }\n\n this.#perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: bodyRes, hand: handRes, gesture: gestureRes, performance: this.#perf, canvas: process.canvas });\n });\n }\n\n #warmupBitmap = async () => {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, this.config);\n bitmap.close();\n }\n return res;\n }\n\n #warmupCanvas = async () => new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n case 'body':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n // src = encodeURI('../assets/human-sample-upper.jpg');\n const img = new Image();\n img.onload = async () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0);\n // const data = ctx?.getImageData(0, 0, canvas.height, canvas.width);\n const res = await this.detect(canvas, this.config);\n resolve(res);\n };\n if (src) img.src = src;\n else resolve(null);\n });\n\n #warmupNode = async () => {\n const atob = (str) => Buffer.from(str, 'base64');\n const img = this.config.warmup === 'face' ? atob(sample.face) : atob(sample.body);\n // @ts-ignore\n const data = tf.node.decodeJpeg(img); // tf.node is only defined when compiling for nodejs\n const expanded = data.expandDims(0);\n this.tf.dispose(data);\n // log('Input:', expanded);\n const res = await this.detect(expanded, this.config);\n this.tf.dispose(expanded);\n return res;\n }\n\n async warmup(userConfig): Promise<{ face, body, hand, gesture, performance, canvas } | { error }> {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.#warmupBitmap();\n else if (typeof Image !== 'undefined') res = await this.#warmupCanvas();\n else res = await this.#warmupNode();\n this.config.videoOptimized = video;\n const t1 = now();\n if (this.config.debug) log('Warmup', this.config.warmup, Math.round(t1 - t0), 'ms', res);\n return res;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "export function info() {\n let platform;\n let agent;\n if (typeof navigator !== 'undefined') {\n const raw = navigator.userAgent.match(/\\(([^()]+)\\)/g);\n if (raw && raw[0]) {\n // @ts-ignore\n platform = raw[0].match(/\\(([^()]+)\\)/g)[0].replace(/\\(|\\)/g, '');\n agent = navigator.userAgent.replace(raw[0], '');\n if (platform[1]) agent = agent.replace(raw[1], '');\n agent = agent.replace(/ /g, ' ');\n }\n } else if (typeof process !== 'undefined') {\n platform = `${process.platform} ${process.arch}`;\n agent = `NodeJS ${process.version}`;\n }\n return { platform, agent };\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n gl: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n log('backend registration:', config.name);\n try {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n } catch (err) {\n log('error: cannot create canvas:', err);\n return;\n }\n try {\n // @ts-ignore\n config.gl = config.canvas.getContext('webgl2', config.webGLattr);\n } catch (err) {\n log('error: cannot get WebGL2 context:', err);\n return;\n }\n try {\n tf.setWebGLContext(2, config.gl);\n } catch (err) {\n log('error: cannot set WebGL2 context:', err);\n return;\n }\n try {\n const ctx = new tf.GPGPUContext(config.gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n } catch (err) {\n log('error: cannot register WebGL backend:', err);\n return;\n }\n try {\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n } catch (err) {\n log('error: cannot update WebGL backend registration:', err);\n return;\n }\n try {\n tf.ENV.set('WEBGL_VERSION', 2);\n // @ts-ignore\n // tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', config.gl.getParameter(config.gl.MAX_TEXTURE_SIZE));\n // tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n } catch (err) {\n log('error: cannot set WebGL backend flags:', err);\n return;\n }\n log('backend registered:', config.name);\n }\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors: Array<[number, number]> = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nexport const disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nexport class BlazeFaceModel {\n blazeFaceModel: any;\n width: number;\n height: number;\n anchorsData: any;\n anchors: any;\n inputSize: any;\n config: any;\n scaleFaces: number;\n\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = model.inputs[0].shape[2];\n this.height = model.inputs[0].shape[1];\n this.anchorsData = generateAnchors(model.inputs[0].shape[1]);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [batch, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = resizedImage.div(127.5).sub(0.5);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let batchOut;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n batchOut = concat.squeeze(0);\n } else {\n batchOut = batchedPrediction.squeeze(); // when using tfhub model\n }\n const boxesOut = decodeBounds(batchOut, this.anchors, this.inputSize);\n const logits = tf.slice(batchOut, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [batchOut, boxesOut, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes: Array<{ box: any, landmarks: any, anchor: any, confidence: number }> = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(batch, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n batch.dispose();\n boxes.dispose();\n scores.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n}\n\nexport async function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n if (config.debug) log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates\n// Update the z coordinate to be an average of the original and the new.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n // @ts-ignore\n if (!keys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nexport class Pipeline {\n storedBoxes: any;\n boundingBoxDetector: any;\n meshDetector: any;\n irisModel: any;\n boxSize: number;\n meshSize: number;\n irisSize: number;\n irisEnlarge: number;\n skipped: number;\n detectedFaces: number;\n\n constructor(boundingBoxDetector, meshDetector, irisModel) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.boxSize = boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2] || 0;\n this.meshSize = meshDetector?.inputs[0].shape[2] || boundingBoxDetector?.blazeFaceModel?.inputs[0].shape[2];\n this.irisSize = irisModel?.inputs[0].shape[1] || 0;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshSize, boxSize[1] / this.boxSize];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.boxSize / 2),\n scaleFactor[1] * (coord[1] - this.boxSize / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshSize,\n box.startPoint[0] / this.meshSize, box.endPoint[1] / this.meshSize,\n box.endPoint[0] / this.meshSize,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip && tf.ENV.flags.IS_BROWSER) {\n crop = tf.image.flipLeftRight(crop); // flipLeftRight is not defined for tfjs-node\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords: Array = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip ? (1 - (x / this.irisSize)) : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (config.face.detector.skipInitial && this.detectedFaces === 0) this.skipped = 0;\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation && config.face.mesh.enabled && tf.ENV.flags.IS_BROWSER) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized); // rotateWithOffset is not defined for tfjs-node\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshSize, this.meshSize]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.boxSize, this.boxSize]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n boxConfidence: box.confidence,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours which are already included in the coordinates.\n const faceConfidence = confidence.dataSync()[0];\n if (faceConfidence < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', null);\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', null);\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged\n // So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence,\n boxConfidence: box.confidence,\n image: face,\n rawCoords,\n };\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoordsData, confidence: box.confidence, faceConfidence };\n\n return prediction;\n }));\n\n results = results.filter((a) => a !== null);\n // remove cache entries for detected boxes on low confidence\n if (config.face.mesh.enabled) this.storedBoxes = this.storedBoxes.filter((a) => a.faceConfidence > config.face.detector.minConfidence);\n this.detectedFaces = results.length;\n\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\n", "export const IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nexport function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport function radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\n\nexport function buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n\nexport function xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\n", "export const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nexport const MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nexport const UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nexport const TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nexport const TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\n\nexport const TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\n\nexport const TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nexport const VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\n\nexport const VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\n\nexport const VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexport const UV68 = VTX68.map((x) => UV468[x]);\n\nexport const UV33 = VTX33.map((x) => UV468[x]);\n\nexport const UV7 = VTX7.map((x) => UV468[x]);\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.age.modelPath);\n if (config.debug) log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = { age: 0 };\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await model.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from './log';\n\nexport const data = {};\n\nexport function run(name: string, raw: any) {\n if (!raw || !raw.kernels) return;\n const maxResults = 5;\n const time = raw.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = raw.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: raw.newBytes, newTensors: raw.newTensors, peakBytes: raw.peakBytes, numKernelOps: raw.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n data[name] = res;\n log('Human profiler', name, res);\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nlet model;\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = model.inputs[0].shape[3] === 1;\n if (config.debug) log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n const normalize = grayscale.sub(0.5).mul(2); // range grayscale:-1..1\n return normalize;\n });\n } else {\n enhance = tf.mul(resize, [255.0]); // range RGB:0..255\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = { gender: '', confidence: 0 };\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await model.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => model.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n if (data[0] > config.face.gender.minConfidence || data[1] > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = data[0] > data[1] ? (Math.trunc(100 * data[0]) / 100) : (Math.trunc(100 * data[1]) / 100);\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nlet model;\nlet last: Array<{ score: number, emotion: string }> = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.emotion.modelPath);\n if (config.debug) log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj: Array<{ score: number, emotion: string }> = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await model.predict(normalize); // result is already in range 0..1, no need for additional activation\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\n\n// original: https://github.com/sirius-ai/MobileFaceNet_TF\n// modified: https://github.com/sirius-ai/MobileFaceNet_TF/issues/46\n// download: https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.face.embedding.modelPath);\n if (config.debug) log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport function simmilarity(embedding1, embedding2) {\n if (!embedding1 || !embedding2) return 0;\n if (embedding1?.length === 0 || embedding2?.length === 0) return 0;\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [model.inputs[0].shape[2], model.inputs[0].shape[1]], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data: Array<[]> = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await model.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => model.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config.body.nmsRadius, config.body.maxDetections, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses(poses, [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config, inputSize) {\n return new Promise(async (resolve) => {\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config.body.scoreThreshold);\n const scaled = util.scaleAndFlipPoses([pose], [input.shape[1], input.shape[2]], [inputSize, inputSize]);\n resolve(scaled);\n });\n}\n\nexport class PoseNet {\n baseModel: any;\n inputSize: number\n constructor(model) {\n this.baseModel = model;\n this.inputSize = model.model.inputs[0].shape[1];\n }\n\n async estimatePoses(input, config) {\n const resized = util.resizeTo(input, [this.inputSize, this.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2)\n ? await estimateSingle(input, res, config, this.inputSize)\n : await estimateMultiple(input, res, config, this.inputSize);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\n\nexport async function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelBase.BaseModel(model);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nexport class BaseModel {\n model: any;\n constructor(model) {\n this.model = model;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nexport class MaxHeap {\n priorityQueue: any;\n numberOfElements: number;\n getElementValue: any;\n\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nexport function buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\n\nconst defaultOutputStride = 16;\n\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\n\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nexport function decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\n\nexport async function decodeSinglePose(heatmapScores, offsets, minScore) {\n let totalScore = 0.0;\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, defaultOutputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > minScore);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\n", "import * as kpt from './keypoints';\n\nexport function getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\n\nexport function fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\n\nexport function clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\n\nexport function squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\n\nexport function addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\n\nexport function clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nexport function getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nexport function getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result: Array = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\n\nexport function getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nexport function argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\nconst defaultOutputStride = 16;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nexport function decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, nmsRadius, maxDetections, scoreThreshold) {\n const poses: Array<{ keypoints: any, score: number }> = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, defaultOutputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, defaultOutputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\n", "import * as kpt from './keypoints';\n\nexport function eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nexport function getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nexport function getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\n\nexport function getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\n\nexport async function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\n\nexport function scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: Math.trunc(position.x * scaleX), y: Math.trunc(position.y * scaleY) },\n })),\n };\n}\n\nexport function resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\n\nexport function scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nexport class HandPose {\n handPipeline: any;\n\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands: Array<{ confidence: number, box: any, landmarks: any, annotations: any }> = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({ confidence: prediction.confidence, box, landmarks: prediction.landmarks, annotations });\n }\n return hands;\n }\n}\n\nexport async function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const handDetector = new handdetector.HandDetector(handDetectorModel, handDetectorModel?.inputs[0].shape[2], anchors.anchors);\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, handPoseModel?.inputs[0].shape[2]);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled && config.debug) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks && config.debug) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nexport class HandDetector {\n model: any;\n anchors: any;\n anchorsTensor: any;\n inputSize: number;\n inputSizeTensor: any;\n doubleInputSizeTensor: any;\n\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSize = inputSize;\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands: Array<{ box: any, palmLandmarks: any, confidence: number }> = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([this.inputSize, this.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands: Array<{}> = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / this.inputSize, inputHeight / this.inputSize]));\n }\n return hands;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport function getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\n\nexport function getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\n\nexport function cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\n\nexport function scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\n\nexport function enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n\nexport function shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nexport class HandPipeline {\n handDetector: any;\n landmarkDetector: any;\n inputSize: number;\n storedBoxes: any;\n skipped: number;\n detectedHands: number;\n\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands: Array<{}> = [];\n\n if (config.hand.skipInitial && this.detectedHands === 0) this.skipped = 0;\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: { topLeft: nextBoundingBox.startPoint, bottomRight: nextBoundingBox.endPoint },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: { topLeft: enlarged.startPoint, bottomRight: enlarged.endPoint },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n", "export function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\n\nexport function computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\n\nexport const buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\n\nexport function dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\n\nexport function getColumnFrom2DArr(arr, columnIndex) {\n const column: Array = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\n\nexport function multiplyTransformMatrices(mat1, mat2) {\n const product: Array = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\n\nexport function buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\n\nexport function invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\n\nexport function rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\n", "export const anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "import { log } from '../log';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile';\nimport * as annotations from './annotations';\n\nlet model;\n\nexport async function load(config) {\n if (!model) {\n model = await tf.loadGraphModel(config.body.modelPath);\n model.width = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[2].size);\n model.height = parseInt(model.signature.inputs['input_1:0'].tensorShape.dim[1].size);\n if (config.debug) log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return model;\n}\n\nexport async function predict(image, config) {\n if (!model) return null;\n if (!config.body.enabled) return null;\n const imgSize = { width: image.shape[2], height: image.shape[1] };\n const resize = tf.image.resizeBilinear(image, [model.width, model.height], false);\n const normalize = tf.div(resize, [255.0]);\n resize.dispose();\n let points;\n if (!config.profile) { // run through profiler or just execute\n const resT = await model.predict(normalize);\n // const segmentationT = resT.find((t) => (t.size === 16384))?.squeeze();\n // const segmentation = segmentationT.arraySync(); // array 128 x 128\n // segmentationT.dispose();\n points = resT.find((t) => (t.size === 195 || t.size === 155)).dataSync(); // order of output tensors may change between models, full has 195 and upper has 155 items\n resT.forEach((t) => t.dispose());\n } else {\n const profileData = await tf.profile(() => model.predict(normalize));\n points = profileData.result.find((t) => (t.size === 195 || t.size === 155)).dataSync();\n profileData.result.forEach((t) => t.dispose());\n profile.run('blazepose', profileData);\n }\n normalize.dispose();\n const keypoints: Array<{ id, part, position: { x, y, z }, score, presence }> = [];\n const labels = points.length === 195 ? annotations.full : annotations.upper; // full model has 39 keypoints, upper has 31 keypoints\n const depth = 5; // each points has x,y,z,visibility,presence\n for (let i = 0; i < points.length / depth; i++) {\n keypoints.push({\n id: i,\n part: labels[i],\n position: {\n x: Math.trunc(imgSize.width * points[depth * i + 0] / 255), // return normalized x value istead of 0..255\n y: Math.trunc(imgSize.height * points[depth * i + 1] / 255), // return normalized y value istead of 0..255\n z: Math.trunc(points[depth * i + 2]) + 0, // fix negative zero\n },\n score: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 3])))) / 100, // reverse sigmoid value\n presence: (100 - Math.trunc(100 / (1 + Math.exp(points[depth * i + 4])))) / 100, // reverse sigmoid value\n });\n }\n return [{ keypoints }];\n}\n", "export const full = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'leftWrist',\n 'rightWrist',\n 'leftPalm',\n 'rightPalm',\n 'leftIndex',\n 'rightIndex',\n 'leftPinky',\n 'rightPinky',\n 'leftHip',\n 'rightHip',\n 'leftKnee',\n 'rightKnee',\n 'leftAnkle',\n 'rightAnkle',\n 'leftHeel',\n 'rightHeel',\n 'leftFoot',\n 'rightFoot',\n 'midHip',\n 'forehead',\n 'leftThumb',\n 'leftHand',\n 'rightThumb',\n 'rightHand',\n];\n\nexport const upper = [\n 'nose',\n 'leftEyeInside',\n 'leftEye',\n 'leftEyeOutside',\n 'rightEyeInside',\n 'rightEye',\n 'rightEyeOutside',\n 'leftEar',\n 'rightEar',\n 'leftMouth',\n 'rightMouth',\n 'leftShoulder',\n 'rightShoulder',\n 'leftElbow',\n 'rightElbow',\n 'left:15',\n 'right:16',\n 'left:17',\n 'right:18',\n 'left:19',\n 'right:20',\n 'left:21',\n 'right:22',\n 'leftChest',\n 'rightChest',\n 'neck',\n 'forehead',\n 'left:27',\n 'right:28',\n 'left:29',\n 'right:30',\n];\n", "export const body = (res) => {\n if (!res) return [];\n const gestures: Array<{ body: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexport const face = (res) => {\n if (!res) return [];\n const gestures: Array<{ face: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[33][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexport const iris = (res) => {\n if (!res) return [];\n const gestures: Array<{ iris: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexport const hand = (res) => {\n if (!res) return [];\n const gestures: Array<{ hand: number, gesture: string }> = [];\n for (let i = 0; i < res.length; i++) {\n const fingers: Array<{ name: string, position: number }> = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n // @ts-ignore\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "// @ts-nocheck\n\nimport { log } from './log';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n// instance of fximage\nlet fx = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nexport function process(input, config): { tensor, canvas } {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return { tensor: null, canvas: null };\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n // log('created FX filter');\n fx = tf.ENV.flags.IS_BROWSER ? new fxImage.GLImageFilter({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!fx) return { tensor: null, canvas: inCanvas };\n fx.reset();\n fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) fx.addFilter('negative');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.vintage) fx.addFilter('brownie');\n if (config.filter.sepia) fx.addFilter('sepia');\n if (config.filter.kodachrome) fx.addFilter('kodachrome');\n if (config.filter.technicolor) fx.addFilter('technicolor');\n if (config.filter.polaroid) fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) fx.addFilter('pixelate', config.filter.pixelate);\n fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n if (fx) fx = null;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n const canvas = config.filter.return ? outCanvas : null;\n return { tensor, canvas };\n}\n", "/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nfunction GLProgram(gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) this.attribute[a] = gl.getAttribLocation(this.id, a);\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) this.uniform[u] = gl.getUniformLocation(this.id, u);\n}\n\n// export const GLImageFilter = function (params) {\nexport function GLImageFilter(params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _filter = {};\n const _canvas = params.canvas || document.createElement('canvas');\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n const DRAW = { INTERMEDIATE: 1 };\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n gl.viewport(0, 0, _width, _height);\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return { fbo, texture };\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _draw = function (flags = null) {\n let source = null;\n let target = null;\n let flipY = false;\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n return _canvas;\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n // Compile shaders\n const SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n _currentProgram = new GLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n const program = _compileShader(_filter.blur.SHADER);\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n const program = _compileShader(_filter.pixelate.SHADER);\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n}\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n // can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl\n // leave as empty string to continue using default backend\n // when backend is set outside of Human library\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n debug: true, // print additional status messages to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json',\n rotation: true, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n // this parameter is not valid in nodejs\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 21, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.2, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.2, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age.json',\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender.json',\n skipFrames: 32, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n skipFrames: 33, // how many frames to go without re-running the detector\n modelPath: '../models/emotion.json',\n },\n\n embedding: {\n enabled: false,\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json', // can be 'posenet' or 'blazepose'\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n // only valid for posenet as blazepose only detects single pose\n scoreThreshold: 0.3, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n // only valid for posenet as blazepose only detects single pose\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n skipInitial: false, // if previous detection resulted in no faces detected,\n // should skipFrames be reset immediately\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "import config from '../config';\nimport { TRI468 as triangulation } from './blazeface/coords';\n\nexport const options = {\n color: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n labelColor: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n shadowColor: 'black',\n font: 'small-caps 16px \"Segoe UI\"',\n lineHeight: 20,\n lineWidth: 6,\n pointSize: 2,\n roundRect: 28,\n drawPoints: false,\n drawLabels: true,\n drawBoxes: true,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n useCurves: false,\n bufferedOutput: false,\n};\n\nfunction point(ctx, x, y) {\n ctx.fillStyle = options.color;\n ctx.beginPath();\n ctx.arc(x, y, options.pointSize, 0, 2 * Math.PI);\n ctx.fill();\n}\n\nfunction rect(ctx, x, y, width, height) {\n ctx.beginPath();\n if (options.useCurves) {\n const cx = (x + x + width) / 2;\n const cy = (y + y + height) / 2;\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n ctx.lineWidth = options.lineWidth;\n ctx.moveTo(x + options.roundRect, y);\n ctx.lineTo(x + width - options.roundRect, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + options.roundRect);\n ctx.lineTo(x + width, y + height - options.roundRect);\n ctx.quadraticCurveTo(x + width, y + height, x + width - options.roundRect, y + height);\n ctx.lineTo(x + options.roundRect, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - options.roundRect);\n ctx.lineTo(x, y + options.roundRect);\n ctx.quadraticCurveTo(x, y, x + options.roundRect, y);\n ctx.closePath();\n }\n ctx.stroke();\n}\n\nfunction lines(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n ctx.beginPath();\n ctx.moveTo(points[0][0], points[0][1]);\n for (const pt of points) ctx.lineTo(pt[0], parseInt(pt[1]));\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nfunction curves(ctx, points: number[] = []) {\n if (points === undefined || points.length === 0) return;\n if (!options.useCurves || points.length <= 2) {\n lines(ctx, points);\n return;\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (let i = 0; i < points.length - 2; i++) {\n const xc = (points[i][0] + points[i + 1][0]) / 2;\n const yc = (points[i][1] + points[i + 1][1]) / 2;\n ctx.quadraticCurveTo(points[i][0], points[i][1], xc, yc);\n }\n ctx.quadraticCurveTo(points[points.length - 2][0], points[points.length - 2][1], points[points.length - 1][0], points[points.length - 1][1]);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.closePath();\n ctx.fill();\n }\n}\n\nexport async function gesture(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.font = options.font;\n ctx.fillStyle = options.color;\n let i = 1;\n for (let j = 0; j < result.length; j++) {\n let where:any[] = [];\n let what:any[] = [];\n [where, what] = Object.entries(result[j]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(label, 8, 2 + (i * options.lineHeight));\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(label, 6, 0 + (i * options.lineHeight));\n i += 1;\n }\n }\n}\n\nexport async function face(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n for (const f of result) {\n ctx.font = options.font;\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n if (options.drawBoxes) {\n rect(ctx, f.box[0], f.box[1], f.box[2], f.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels:string[] = [];\n labels.push(`face confidence: ${Math.trunc(100 * f.confidence)}%`);\n if (f.genderConfidence) labels.push(`${f.gender || ''} ${Math.trunc(100 * f.genderConfidence)}% confident`);\n // if (f.genderConfidence) labels.push(f.gender);\n if (f.age) labels.push(`age: ${f.age || ''}`);\n if (f.iris) labels.push(`iris distance: ${f.iris}`);\n if (f.emotion && f.emotion.length > 0) {\n const emotion = f.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n if (f.angle && f.angle.roll) labels.push(`roll: ${Math.trunc(100 * f.angle.roll) / 100} yaw:${Math.trunc(100 * f.angle.yaw) / 100} pitch:${Math.trunc(100 * f.angle.pitch) / 100}`);\n if (labels.length === 0) labels.push('face');\n ctx.fillStyle = options.color;\n for (let i = labels.length - 1; i >= 0; i--) {\n const x = Math.max(f.box[0], 0);\n const y = i * options.lineHeight + f.box[1];\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText(labels[i], x + 5, y + 16);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText(labels[i], x + 4, y + 15);\n }\n ctx.lineWidth = 1;\n if (f.mesh) {\n if (options.drawPoints) {\n for (const pt of f.mesh) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n if (options.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => f.mesh[index]);\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : options.color;\n ctx.lineWidth = 1;\n lines(ctx, points);\n }\n // iris: array[center, left, top, right, bottom]\n if (f.annotations && f.annotations.leftEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.leftEyeIris[3][0] - f.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.leftEyeIris[4][1] - f.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.leftEyeIris[0][0], f.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n if (f.annotations && f.annotations.rightEyeIris) {\n ctx.strokeStyle = options.useDepth ? 'rgba(255, 200, 255, 0.3)' : options.color;\n ctx.beginPath();\n const sizeX = Math.abs(f.annotations.rightEyeIris[3][0] - f.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(f.annotations.rightEyeIris[4][1] - f.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(f.annotations.rightEyeIris[0][0], f.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (options.fillPolygons) {\n ctx.fillStyle = options.useDepth ? 'rgba(255, 255, 200, 0.3)' : options.color;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose:any[] = [];\nexport async function body(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n // result[i].keypoints = result[i].keypoints.filter((a) => a.score > 0.5);\n if (!lastDrawnPose[i] && options.bufferedOutput) lastDrawnPose[i] = { ...result[i] };\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.lineWidth;\n if (options.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.fillStyle = options.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : options.color;\n if (options.bufferedOutput) {\n lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;\n point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1]);\n } else {\n point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y);\n }\n }\n }\n if (options.drawLabels) {\n ctx.font = options.font;\n for (const pt of result[i].keypoints) {\n ctx.fillStyle = options.useDepth && pt.position.z ? `rgba(${127.5 + (2 * pt.position.z)}, ${127.5 - (2 * pt.position.z)}, 255, 0.5)` : options.color;\n ctx.fillText(`${pt.part}`, pt.position.x + 4, pt.position.y + 4);\n }\n }\n if (options.drawPolygons) {\n let part;\n const points: any[] = [];\n // torso\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n if (points.length === 5) lines(ctx, points); // only draw if we have complete torso\n // leg left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // leg right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightHeel');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightFoot');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm left\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'leftPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // arm right\n points.length = 0;\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n part = result[i].keypoints.find((a) => a.part === 'rightPalm');\n if (part && part.score > config.body.scoreThreshold) points.push([part.position.x, part.position.y]);\n curves(ctx, points);\n // draw all\n }\n }\n}\n\nexport async function hand(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n const ctx = inCanvas.getContext('2d');\n if (!ctx) return;\n ctx.lineJoin = 'round';\n ctx.font = options.font;\n for (const h of result) {\n if (options.drawBoxes) {\n ctx.strokeStyle = options.color;\n ctx.fillStyle = options.color;\n rect(ctx, h.box[0], h.box[1], h.box[2], h.box[3]);\n if (options.shadowColor && options.shadowColor !== '') {\n ctx.fillStyle = options.shadowColor;\n ctx.fillText('hand', h.box[0] + 3, 1 + h.box[1] + options.lineHeight, h.box[2]);\n }\n ctx.fillStyle = options.labelColor;\n ctx.fillText('hand', h.box[0] + 2, 0 + h.box[1] + options.lineHeight, h.box[2]);\n ctx.stroke();\n }\n if (options.drawPoints) {\n if (h.landmarks && h.landmarks.length > 0) {\n for (const pt of h.landmarks) {\n ctx.fillStyle = options.useDepth ? `rgba(${127.5 + (2 * pt[2])}, ${127.5 - (2 * pt[2])}, 255, 0.5)` : options.color;\n point(ctx, pt[0], pt[1]);\n }\n }\n }\n if (options.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = options.lineWidth;\n ctx.beginPath();\n ctx.strokeStyle = options.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : options.color;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(h.annotations.indexFinger);\n addPart(h.annotations.middleFinger);\n addPart(h.annotations.ringFinger);\n addPart(h.annotations.pinky);\n addPart(h.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\nexport async function canvas(inCanvas, outCanvas) {\n if (!inCanvas || !outCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement) || !(outCanvas instanceof HTMLCanvasElement)) return;\n const outCtx = inCanvas.getContext('2d');\n outCtx?.drawImage(inCanvas, 0, 0);\n}\n\nexport async function all(inCanvas, result) {\n if (!result || !inCanvas) return;\n if (!(inCanvas instanceof HTMLCanvasElement)) return;\n face(inCanvas, result.face);\n body(inCanvas, result.body);\n hand(inCanvas, result.hand);\n gesture(inCanvas, result.gesture);\n}\n"], "mappings": "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mB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,kBAAkB;AAAA,EACnB,CAAC,gBAAgB;AAAA,EACjB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,kBAAkB;AAAA,EACnB,CAAC,iBAAiB;AAAA,EAClB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA,EACpB,CAAC,mBAAmB;AAAA;AAGf,IAAM,SAAS;AAAA,EACpB;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACtJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACtJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EACnJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACnJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EACrJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACrJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAI;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC9I;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC/I;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAChJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAClJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAG;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACpJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EACjJ;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EA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A,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA;AAAA,EAEZ;AAAA,IACE,GAAG;AAAA,IACH,GAAG;AAA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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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", "names": [] } diff --git a/models/age.json b/models/age.json index 83be186a..d1d20a7c 100644 --- a/models/age.json +++ b/models/age.json @@ -1,7 +1,7 @@ { "format": "graph-model", "generatedBy": "2.3.1", - "convertedBy": "TensorFlow.js Converter v2.4.0", + "convertedBy": "https://github.com/vladmandic", "userDefinedMetadata": { "signature": diff --git a/models/blazeface-back.json b/models/blazeface-back.json index fe381138..32e065f9 100644 --- a/models/blazeface-back.json +++ b/models/blazeface-back.json @@ -1,7 +1,7 @@ { "format": "graph-model", "generatedBy": "2.3.0", - "convertedBy": "TensorFlow.js Converter v2.3.0", + "convertedBy": "https://github.com/vladmandic", "userDefinedMetadata": { "signature": diff --git a/models/blazeface-front.json b/models/blazeface-front.json index c274e215..43f5aa43 100644 --- a/models/blazeface-front.json +++ b/models/blazeface-front.json @@ -1,7 +1,7 @@ { "format": "graph-model", "generatedBy": "2.3.0", - "convertedBy": "TensorFlow.js Converter v2.3.0", + "convertedBy": "https://github.com/vladmandic", "userDefinedMetadata": { "signature": diff --git a/models/blazepose.json b/models/blazepose.json index 33ec89b0..3b074573 100644 --- a/models/blazepose.json +++ b/models/blazepose.json @@ -1,7 +1,7 @@ { "format": "graph-model", "generatedBy": "2.4.1", - "convertedBy": "TensorFlow.js Converter v2.8.2", + "convertedBy": "https://github.com/vladmandic", "signature": { "inputs": diff --git a/models/emotion.json b/models/emotion.json index a08b4fa7..90498aa6 100644 --- a/models/emotion.json +++ b/models/emotion.json @@ -1,7 +1,7 @@ { "format": "graph-model", "generatedBy": "2.3.1", - "convertedBy": "TensorFlow.js Converter v2.7.0", + "convertedBy": "https://github.com/vladmandic", "userDefinedMetadata": { "signature": diff --git a/models/facemesh.json b/models/facemesh.json index a822a346..049c2c0b 100644 --- a/models/facemesh.json +++ b/models/facemesh.json @@ -1,7 +1,7 @@ { "format": "graph-model", "generatedBy": "1.15.0", - "convertedBy": "TensorFlow.js Converter v1.5.2", + "convertedBy": "https://github.com/vladmandic", "userDefinedMetadata": { "signature": diff --git a/models/gender.json b/models/gender.json index 21b19b01..6a936592 100644 --- a/models/gender.json +++ b/models/gender.json @@ -1,7 +1,7 @@ { "format": "graph-model", "generatedBy": "2.3.1", - "convertedBy": "TensorFlow.js Converter v2.7.0", + "convertedBy": "https://github.com/vladmandic", "userDefinedMetadata": { "signature": diff --git a/models/handdetect.json b/models/handdetect.json index f5802ef3..48c3b5ae 100644 --- a/models/handdetect.json +++ b/models/handdetect.json @@ -1,7 +1,7 @@ { "format": "graph-model", "generatedBy": "1.15.0", - "convertedBy": "TensorFlow.js Converter v1.3.2", + "convertedBy": "https://github.com/vladmandic", "userDefinedMetadata": { "signature": diff --git a/models/handskeleton.json b/models/handskeleton.json index a0b45906..b15082c4 100644 --- a/models/handskeleton.json +++ b/models/handskeleton.json @@ -1,7 +1,7 @@ { "format": "graph-model", "generatedBy": "1.15.0", - "convertedBy": "TensorFlow.js Converter v1.4.0", + "convertedBy": "https://github.com/vladmandic", "userDefinedMetadata": { "signature": diff --git a/models/iris.json b/models/iris.json index 319a2ffc..4cb8cf9a 100644 --- a/models/iris.json +++ b/models/iris.json @@ -1,7 +1,7 @@ { "format": "graph-model", "generatedBy": "2.4.0", - "convertedBy": "TensorFlow.js Converter v1.7.0", + "convertedBy": "https://github.com/vladmandic", "userDefinedMetadata": { "signature": diff --git a/models/mobilefacenet.json b/models/mobilefacenet.json index 6b1c8169..3ae86416 100644 --- a/models/mobilefacenet.json +++ b/models/mobilefacenet.json @@ -1,7 +1,7 @@ { "format": "graph-model", "generatedBy": "2.3.1", - "convertedBy": "TensorFlow.js Converter v2.7.0", + "convertedBy": "https://github.com/vladmandic", "userDefinedMetadata": { "signature":